bug 250829 - initial load of VEX emf model and generated code.
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/.classpath b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/.classpath
index 1564e29..127fa65 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/.classpath
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/.classpath
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
+	<classpathentry kind="src" path="src-emf"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="lib" path="lib/flute.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/META-INF/MANIFEST.MF b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/META-INF/MANIFEST.MF
index 8e570c2..18c51a8 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/META-INF/MANIFEST.MF
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/META-INF/MANIFEST.MF
@@ -11,13 +11,18 @@
  org.eclipse.wst.sse.core;bundle-version="[1.1.0,2.0.0)",
  org.eclipse.wst.xml.core;bundle-version="[1.1.0,2.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,2.0.0)"
+ org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,2.0.0)",
+ org.eclipse.emf;bundle-version="2.4.0",
+ org.eclipse.emf.ecore;bundle-version="2.4.1"
 Export-Package: org.eclipse.wst.xml.vex.core.internal;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.core;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.css;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.dom;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.layout;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.provisional.dom;x-internal:=true,
+ org.eclipse.wst.xml.vex.core.internal.provisional.dom.I,
+ org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl,
+ org.eclipse.wst.xml.vex.core.internal.provisional.dom.util,
  org.eclipse.wst.xml.vex.core.internal.undo;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.util;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.validator;x-internal:=true,
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/build.properties b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/build.properties
index 75cde60..48bd548 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/build.properties
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/build.properties
@@ -3,10 +3,14 @@
                .,\
                lib/,\
                lib/flute.jar,\
-               bin/
+               bin/,\
+               plugin.xml
 src.includes = lib/,\
+               src-emf/,\
                src/
-source.. = src/
-jars.compile.order = .
+source.. = src/,\
+           src-emf/
+der = .
 bin.excludes = lib/.cvsignore
 src.excludes = lib/.cvsignore
+output.. = bin/
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/emf/vexdocument.genmodel b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/emf/vexdocument.genmodel
index 0d47b47..e6e0cd3 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/emf/vexdocument.genmodel
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/emf/vexdocument.genmodel
@@ -3,10 +3,11 @@
     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.wst.xml.vex.core/src-emf"
     modelPluginID="org.eclipse.wst.xml.vex.core" modelName="Vexdocument" modelPluginClass=""
-    importerID="org.eclipse.emf.importer.java" complianceLevel="5.0" copyrightFields="false">
+    testsDirectory="/org.eclipse.wst.xml.vex.core.tests/src_emf" importerID="org.eclipse.emf.importer.java"
+    complianceLevel="5.0" copyrightFields="false">
   <foreignModel>@model</foreignModel>
   <genPackages prefix="DomEMF" basePackage="org.eclipse.wst.xml.vex.core.internal.provisional"
-      disposableProviderFactory="true" ecorePackage="dom1.ecore#/">
+      disposableProviderFactory="true" interfacePackageSuffix="I" ecorePackage="dom1.ecore#/">
     <genDataTypes ecoreDataType="dom1.ecore#//DocumentValidationException"/>
     <genDataTypes ecoreDataType="dom1.ecore#//AttributeDefinition"/>
     <genDataTypes ecoreDataType="dom1.ecore#//Set">
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/plugin.properties b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/plugin.properties
index 8a7bbd6..9565655 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/plugin.properties
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/plugin.properties
@@ -1,2 +1,3 @@
 plugin.name=Vex Toolkit
-providerName=Eclipse.org
\ No newline at end of file
+providerName=Eclipse.org
+pluginName = Vexdocument Model
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/plugin.xml b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/plugin.xml
new file mode 100644
index 0000000..5535690
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/plugin.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+</plugin>
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/DomEMFFactory.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/DomEMFFactory.java
new file mode 100644
index 0000000..ea2a8c5
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/DomEMFFactory.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom;
+
+import org.eclipse.emf.ecore.EFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator;
+
+/**
+ * <!-- 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage
+ * @generated
+ */
+public interface DomEMFFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DomEMFFactory eINSTANCE = org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Content</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Content</em>'.
+	 * @generated
+	 */
+	Content createContent();
+
+	/**
+	 * Returns a new object of class '<em>Position</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Position</em>'.
+	 * @generated
+	 */
+	Position createPosition();
+
+	/**
+	 * Returns a new object of class '<em>VEX Attribute</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>VEX Attribute</em>'.
+	 * @generated
+	 */
+	VEXAttribute createVEXAttribute();
+
+	/**
+	 * Returns a new object of class '<em>VEX Comment</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>VEX Comment</em>'.
+	 * @generated
+	 */
+	VEXComment createVEXComment();
+
+	/**
+	 * Returns a new object of class '<em>VEX Document</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>VEX Document</em>'.
+	 * @generated
+	 */
+	VEXDocument createVEXDocument();
+
+	/**
+	 * Returns a new object of class '<em>VEX Document Fragment</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>VEX Document Fragment</em>'.
+	 * @generated
+	 */
+	VEXDocumentFragment createVEXDocumentFragment();
+
+	/**
+	 * Returns a new object of class '<em>VEX Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>VEX Element</em>'.
+	 * @generated
+	 */
+	VEXElement createVEXElement();
+
+	/**
+	 * Returns a new object of class '<em>VEX Node</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>VEX Node</em>'.
+	 * @generated
+	 */
+	VEXNode createVEXNode();
+
+	/**
+	 * Returns a new object of class '<em>VEX Processing Instruction</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>VEX Processing Instruction</em>'.
+	 * @generated
+	 */
+	VEXProcessingInstruction createVEXProcessingInstruction();
+
+	/**
+	 * Returns a new object of class '<em>Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Validator</em>'.
+	 * @generated
+	 */
+	Validator createValidator();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	DomEMFPackage getDomEMFPackage();
+
+} //DomEMFFactory
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/DomEMFPackage.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/DomEMFPackage.java
new file mode 100644
index 0000000..810c14a
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/DomEMFPackage.java
@@ -0,0 +1,1839 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+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.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DomEMFPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "dom";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/wst/xml/vex/core/internal/provisional/dom.ecore";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "org.eclipse.wst.xml.vex.core.internal.provisional.dom";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DomEMFPackage eINSTANCE = org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ContentImpl <em>Content</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ContentImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getContent()
+	 * @generated
+	 */
+	int CONTENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTENT__LENGTH = 0;
+
+	/**
+	 * The number of structural features of the '<em>Content</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTENT_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.PositionImpl <em>Position</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.PositionImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getPosition()
+	 * @generated
+	 */
+	int POSITION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int POSITION__OFFSET = 0;
+
+	/**
+	 * The number of structural features of the '<em>Position</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int POSITION_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl <em>VEX Node</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXNode()
+	 * @generated
+	 */
+	int VEX_NODE = 7;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_NODE__CONTENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>End Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_NODE__END_OFFSET = 1;
+
+	/**
+	 * The feature id for the '<em><b>End Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_NODE__END_POSITION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Start Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_NODE__START_OFFSET = 3;
+
+	/**
+	 * The feature id for the '<em><b>Start Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_NODE__START_POSITION = 4;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_NODE__TEXT = 5;
+
+	/**
+	 * The number of structural features of the '<em>VEX Node</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_NODE_FEATURE_COUNT = 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl <em>VEX Attribute</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXAttribute()
+	 * @generated
+	 */
+	int VEX_ATTRIBUTE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__CONTENT = VEX_NODE__CONTENT;
+
+	/**
+	 * The feature id for the '<em><b>End Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__END_OFFSET = VEX_NODE__END_OFFSET;
+
+	/**
+	 * The feature id for the '<em><b>End Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__END_POSITION = VEX_NODE__END_POSITION;
+
+	/**
+	 * The feature id for the '<em><b>Start Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__START_OFFSET = VEX_NODE__START_OFFSET;
+
+	/**
+	 * The feature id for the '<em><b>Start Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__START_POSITION = VEX_NODE__START_POSITION;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__TEXT = VEX_NODE__TEXT;
+
+	/**
+	 * The feature id for the '<em><b>Document</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__DOCUMENT = VEX_NODE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__VALUE = VEX_NODE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Parent</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__PARENT = VEX_NODE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Local Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__LOCAL_NAME = VEX_NODE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Namespace Prefix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__NAMESPACE_PREFIX = VEX_NODE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Namespace URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE__NAMESPACE_URI = VEX_NODE_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>VEX Attribute</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ATTRIBUTE_FEATURE_COUNT = VEX_NODE_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXCommentImpl <em>VEX Comment</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXCommentImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXComment()
+	 * @generated
+	 */
+	int VEX_COMMENT = 3;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_COMMENT__CONTENT = VEX_NODE__CONTENT;
+
+	/**
+	 * The feature id for the '<em><b>End Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_COMMENT__END_OFFSET = VEX_NODE__END_OFFSET;
+
+	/**
+	 * The feature id for the '<em><b>End Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_COMMENT__END_POSITION = VEX_NODE__END_POSITION;
+
+	/**
+	 * The feature id for the '<em><b>Start Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_COMMENT__START_OFFSET = VEX_NODE__START_OFFSET;
+
+	/**
+	 * The feature id for the '<em><b>Start Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_COMMENT__START_POSITION = VEX_NODE__START_POSITION;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_COMMENT__TEXT = VEX_NODE__TEXT;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_COMMENT__VALUE = VEX_NODE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>VEX Comment</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_COMMENT_FEATURE_COUNT = VEX_NODE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl <em>VEX Document</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXDocument()
+	 * @generated
+	 */
+	int VEX_DOCUMENT = 4;
+
+	/**
+	 * The feature id for the '<em><b>Encoding</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT__ENCODING = 0;
+
+	/**
+	 * The feature id for the '<em><b>Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT__LENGTH = 1;
+
+	/**
+	 * The feature id for the '<em><b>Root Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT__ROOT_ELEMENT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Validator</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT__VALIDATOR = 3;
+
+	/**
+	 * The feature id for the '<em><b>Public ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT__PUBLIC_ID = 4;
+
+	/**
+	 * The number of structural features of the '<em>VEX Document</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT_FEATURE_COUNT = 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl <em>VEX Document Fragment</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXDocumentFragment()
+	 * @generated
+	 */
+	int VEX_DOCUMENT_FRAGMENT = 5;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT_FRAGMENT__CONTENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT_FRAGMENT__LENGTH = 1;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT_FRAGMENT__ELEMENTS = 2;
+
+	/**
+	 * The feature id for the '<em><b>Node Names</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT_FRAGMENT__NODE_NAMES = 3;
+
+	/**
+	 * The feature id for the '<em><b>Nodes</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT_FRAGMENT__NODES = 4;
+
+	/**
+	 * The number of structural features of the '<em>VEX Document Fragment</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_DOCUMENT_FRAGMENT_FEATURE_COUNT = 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl <em>VEX Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXElement()
+	 * @generated
+	 */
+	int VEX_ELEMENT = 6;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__CONTENT = VEX_NODE__CONTENT;
+
+	/**
+	 * The feature id for the '<em><b>End Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__END_OFFSET = VEX_NODE__END_OFFSET;
+
+	/**
+	 * The feature id for the '<em><b>End Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__END_POSITION = VEX_NODE__END_POSITION;
+
+	/**
+	 * The feature id for the '<em><b>Start Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__START_OFFSET = VEX_NODE__START_OFFSET;
+
+	/**
+	 * The feature id for the '<em><b>Start Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__START_POSITION = VEX_NODE__START_POSITION;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__TEXT = VEX_NODE__TEXT;
+
+	/**
+	 * The feature id for the '<em><b>Attribute Names</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__ATTRIBUTE_NAMES = VEX_NODE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Child Elements</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__CHILD_ELEMENTS = VEX_NODE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Child Nodes</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__CHILD_NODES = VEX_NODE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Document</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__DOCUMENT = VEX_NODE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__NAME = VEX_NODE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Empty</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__EMPTY = VEX_NODE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Parent</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__PARENT = VEX_NODE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Namespace Prefix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__NAMESPACE_PREFIX = VEX_NODE_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Namespace URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT__NAMESPACE_URI = VEX_NODE_FEATURE_COUNT + 8;
+
+	/**
+	 * The number of structural features of the '<em>VEX Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_ELEMENT_FEATURE_COUNT = VEX_NODE_FEATURE_COUNT + 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXProcessingInstructionImpl <em>VEX Processing Instruction</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXProcessingInstructionImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXProcessingInstruction()
+	 * @generated
+	 */
+	int VEX_PROCESSING_INSTRUCTION = 8;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_PROCESSING_INSTRUCTION__CONTENT = VEX_NODE__CONTENT;
+
+	/**
+	 * The feature id for the '<em><b>End Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_PROCESSING_INSTRUCTION__END_OFFSET = VEX_NODE__END_OFFSET;
+
+	/**
+	 * The feature id for the '<em><b>End Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_PROCESSING_INSTRUCTION__END_POSITION = VEX_NODE__END_POSITION;
+
+	/**
+	 * The feature id for the '<em><b>Start Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_PROCESSING_INSTRUCTION__START_OFFSET = VEX_NODE__START_OFFSET;
+
+	/**
+	 * The feature id for the '<em><b>Start Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_PROCESSING_INSTRUCTION__START_POSITION = VEX_NODE__START_POSITION;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_PROCESSING_INSTRUCTION__TEXT = VEX_NODE__TEXT;
+
+	/**
+	 * The feature id for the '<em><b>Attributes</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_PROCESSING_INSTRUCTION__ATTRIBUTES = VEX_NODE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>VEX Processing Instruction</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEX_PROCESSING_INSTRUCTION_FEATURE_COUNT = VEX_NODE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link java.io.Serializable <em>Serializable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see java.io.Serializable
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getSerializable()
+	 * @generated
+	 */
+	int SERIALIZABLE = 10;
+
+	/**
+	 * The number of structural features of the '<em>Serializable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SERIALIZABLE_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ValidatorImpl <em>Validator</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ValidatorImpl
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getValidator()
+	 * @generated
+	 */
+	int VALIDATOR = 9;
+
+	/**
+	 * The feature id for the '<em><b>Valid Root Elements</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALIDATOR__VALID_ROOT_ELEMENTS = SERIALIZABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Validator</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALIDATOR_FEATURE_COUNT = SERIALIZABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '<em>Document Validation Exception</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getDocumentValidationException()
+	 * @generated
+	 */
+	int DOCUMENT_VALIDATION_EXCEPTION = 11;
+
+	/**
+	 * The meta object id for the '<em>Attribute Definition</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getAttributeDefinition()
+	 * @generated
+	 */
+	int ATTRIBUTE_DEFINITION = 12;
+
+	/**
+	 * The meta object id for the '<em>Set</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see java.util.Set
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getSet()
+	 * @generated
+	 */
+	int SET = 13;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content <em>Content</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Content</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content
+	 * @generated
+	 */
+	EClass getContent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#getLength <em>Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#getLength()
+	 * @see #getContent()
+	 * @generated
+	 */
+	EAttribute getContent_Length();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position <em>Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Position</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position
+	 * @generated
+	 */
+	EClass getPosition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position#getOffset <em>Offset</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Offset</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position#getOffset()
+	 * @see #getPosition()
+	 * @generated
+	 */
+	EAttribute getPosition_Offset();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute <em>VEX Attribute</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>VEX Attribute</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute
+	 * @generated
+	 */
+	EClass getVEXAttribute();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getDocument <em>Document</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Document</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getDocument()
+	 * @see #getVEXAttribute()
+	 * @generated
+	 */
+	EReference getVEXAttribute_Document();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getValue()
+	 * @see #getVEXAttribute()
+	 * @generated
+	 */
+	EAttribute getVEXAttribute_Value();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getParent <em>Parent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Parent</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getParent()
+	 * @see #getVEXAttribute()
+	 * @generated
+	 */
+	EReference getVEXAttribute_Parent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getLocalName <em>Local Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Local Name</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getLocalName()
+	 * @see #getVEXAttribute()
+	 * @generated
+	 */
+	EAttribute getVEXAttribute_LocalName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getNamespacePrefix <em>Namespace Prefix</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Namespace Prefix</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getNamespacePrefix()
+	 * @see #getVEXAttribute()
+	 * @generated
+	 */
+	EAttribute getVEXAttribute_NamespacePrefix();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#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.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getNamespaceURI()
+	 * @see #getVEXAttribute()
+	 * @generated
+	 */
+	EAttribute getVEXAttribute_NamespaceURI();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment <em>VEX Comment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>VEX Comment</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment
+	 * @generated
+	 */
+	EClass getVEXComment();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment#getValue()
+	 * @see #getVEXComment()
+	 * @generated
+	 */
+	EAttribute getVEXComment_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument <em>VEX Document</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>VEX Document</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument
+	 * @generated
+	 */
+	EClass getVEXDocument();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getEncoding <em>Encoding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Encoding</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getEncoding()
+	 * @see #getVEXDocument()
+	 * @generated
+	 */
+	EAttribute getVEXDocument_Encoding();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getLength <em>Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getLength()
+	 * @see #getVEXDocument()
+	 * @generated
+	 */
+	EAttribute getVEXDocument_Length();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getRootElement <em>Root Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Root Element</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getRootElement()
+	 * @see #getVEXDocument()
+	 * @generated
+	 */
+	EReference getVEXDocument_RootElement();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getValidator <em>Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Validator</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getValidator()
+	 * @see #getVEXDocument()
+	 * @generated
+	 */
+	EReference getVEXDocument_Validator();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getPublicID <em>Public ID</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Public ID</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getPublicID()
+	 * @see #getVEXDocument()
+	 * @generated
+	 */
+	EAttribute getVEXDocument_PublicID();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment <em>VEX Document Fragment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>VEX Document Fragment</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment
+	 * @generated
+	 */
+	EClass getVEXDocumentFragment();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getContent <em>Content</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Content</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getContent()
+	 * @see #getVEXDocumentFragment()
+	 * @generated
+	 */
+	EReference getVEXDocumentFragment_Content();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getLength <em>Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getLength()
+	 * @see #getVEXDocumentFragment()
+	 * @generated
+	 */
+	EAttribute getVEXDocumentFragment_Length();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getElements <em>Elements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Elements</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getElements()
+	 * @see #getVEXDocumentFragment()
+	 * @generated
+	 */
+	EReference getVEXDocumentFragment_Elements();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getNodeNames <em>Node Names</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Node Names</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getNodeNames()
+	 * @see #getVEXDocumentFragment()
+	 * @generated
+	 */
+	EAttribute getVEXDocumentFragment_NodeNames();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getNodes <em>Nodes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Nodes</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getNodes()
+	 * @see #getVEXDocumentFragment()
+	 * @generated
+	 */
+	EReference getVEXDocumentFragment_Nodes();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement <em>VEX Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>VEX Element</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement
+	 * @generated
+	 */
+	EClass getVEXElement();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getAttributeNames <em>Attribute Names</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Attribute Names</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getAttributeNames()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EAttribute getVEXElement_AttributeNames();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getChildElements <em>Child Elements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Child Elements</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getChildElements()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EReference getVEXElement_ChildElements();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getChildNodes <em>Child Nodes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Child Nodes</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getChildNodes()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EReference getVEXElement_ChildNodes();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getDocument <em>Document</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Document</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getDocument()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EReference getVEXElement_Document();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getName()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EAttribute getVEXElement_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#isEmpty <em>Empty</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Empty</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#isEmpty()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EAttribute getVEXElement_Empty();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getParent <em>Parent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Parent</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getParent()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EReference getVEXElement_Parent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getNamespacePrefix <em>Namespace Prefix</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Namespace Prefix</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getNamespacePrefix()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EAttribute getVEXElement_NamespacePrefix();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#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.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getNamespaceURI()
+	 * @see #getVEXElement()
+	 * @generated
+	 */
+	EAttribute getVEXElement_NamespaceURI();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode <em>VEX Node</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>VEX Node</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode
+	 * @generated
+	 */
+	EClass getVEXNode();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getContent <em>Content</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Content</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getContent()
+	 * @see #getVEXNode()
+	 * @generated
+	 */
+	EReference getVEXNode_Content();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getEndOffset <em>End Offset</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>End Offset</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getEndOffset()
+	 * @see #getVEXNode()
+	 * @generated
+	 */
+	EAttribute getVEXNode_EndOffset();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getEndPosition <em>End Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>End Position</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getEndPosition()
+	 * @see #getVEXNode()
+	 * @generated
+	 */
+	EReference getVEXNode_EndPosition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getStartOffset <em>Start Offset</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Start Offset</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getStartOffset()
+	 * @see #getVEXNode()
+	 * @generated
+	 */
+	EAttribute getVEXNode_StartOffset();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getStartPosition <em>Start Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Start Position</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getStartPosition()
+	 * @see #getVEXNode()
+	 * @generated
+	 */
+	EReference getVEXNode_StartPosition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getText <em>Text</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Text</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getText()
+	 * @see #getVEXNode()
+	 * @generated
+	 */
+	EAttribute getVEXNode_Text();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction <em>VEX Processing Instruction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>VEX Processing Instruction</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction
+	 * @generated
+	 */
+	EClass getVEXProcessingInstruction();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#getAttributes <em>Attributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Attributes</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#getAttributes()
+	 * @see #getVEXProcessingInstruction()
+	 * @generated
+	 */
+	EReference getVEXProcessingInstruction_Attributes();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator <em>Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Validator</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator
+	 * @generated
+	 */
+	EClass getValidator();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getValidRootElements <em>Valid Root Elements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Valid Root Elements</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getValidRootElements()
+	 * @see #getValidator()
+	 * @generated
+	 */
+	EAttribute getValidator_ValidRootElements();
+
+	/**
+	 * Returns the meta object for class '{@link java.io.Serializable <em>Serializable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Serializable</em>'.
+	 * @see java.io.Serializable
+	 * @model instanceClass="java.io.Serializable"
+	 * @generated
+	 */
+	EClass getSerializable();
+
+	/**
+	 * Returns the meta object for data type '{@link org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException <em>Document Validation Exception</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Document Validation Exception</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException
+	 * @model instanceClass="org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException"
+	 * @generated
+	 */
+	EDataType getDocumentValidationException();
+
+	/**
+	 * Returns the meta object for data type '{@link org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition <em>Attribute Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Attribute Definition</em>'.
+	 * @see org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition
+	 * @model instanceClass="org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition"
+	 * @generated
+	 */
+	EDataType getAttributeDefinition();
+
+	/**
+	 * Returns the meta object for data type '{@link java.util.Set <em>Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Set</em>'.
+	 * @see java.util.Set
+	 * @model instanceClass="java.util.Set" typeParameters="T"
+	 * @generated
+	 */
+	EDataType getSet();
+
+	/**
+	 * 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
+	 */
+	DomEMFFactory getDomEMFFactory();
+
+	/**
+	 * <!-- 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.wst.xml.vex.core.internal.provisional.dom.impl.ContentImpl <em>Content</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ContentImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getContent()
+		 * @generated
+		 */
+		EClass CONTENT = eINSTANCE.getContent();
+
+		/**
+		 * The meta object literal for the '<em><b>Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONTENT__LENGTH = eINSTANCE.getContent_Length();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.PositionImpl <em>Position</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.PositionImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getPosition()
+		 * @generated
+		 */
+		EClass POSITION = eINSTANCE.getPosition();
+
+		/**
+		 * The meta object literal for the '<em><b>Offset</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute POSITION__OFFSET = eINSTANCE.getPosition_Offset();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl <em>VEX Attribute</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXAttribute()
+		 * @generated
+		 */
+		EClass VEX_ATTRIBUTE = eINSTANCE.getVEXAttribute();
+
+		/**
+		 * The meta object literal for the '<em><b>Document</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_ATTRIBUTE__DOCUMENT = eINSTANCE.getVEXAttribute_Document();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ATTRIBUTE__VALUE = eINSTANCE.getVEXAttribute_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Parent</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_ATTRIBUTE__PARENT = eINSTANCE.getVEXAttribute_Parent();
+
+		/**
+		 * The meta object literal for the '<em><b>Local Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ATTRIBUTE__LOCAL_NAME = eINSTANCE.getVEXAttribute_LocalName();
+
+		/**
+		 * The meta object literal for the '<em><b>Namespace Prefix</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ATTRIBUTE__NAMESPACE_PREFIX = eINSTANCE.getVEXAttribute_NamespacePrefix();
+
+		/**
+		 * The meta object literal for the '<em><b>Namespace URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ATTRIBUTE__NAMESPACE_URI = eINSTANCE.getVEXAttribute_NamespaceURI();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXCommentImpl <em>VEX Comment</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXCommentImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXComment()
+		 * @generated
+		 */
+		EClass VEX_COMMENT = eINSTANCE.getVEXComment();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_COMMENT__VALUE = eINSTANCE.getVEXComment_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl <em>VEX Document</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXDocument()
+		 * @generated
+		 */
+		EClass VEX_DOCUMENT = eINSTANCE.getVEXDocument();
+
+		/**
+		 * The meta object literal for the '<em><b>Encoding</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_DOCUMENT__ENCODING = eINSTANCE.getVEXDocument_Encoding();
+
+		/**
+		 * The meta object literal for the '<em><b>Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_DOCUMENT__LENGTH = eINSTANCE.getVEXDocument_Length();
+
+		/**
+		 * The meta object literal for the '<em><b>Root Element</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_DOCUMENT__ROOT_ELEMENT = eINSTANCE.getVEXDocument_RootElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Validator</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_DOCUMENT__VALIDATOR = eINSTANCE.getVEXDocument_Validator();
+
+		/**
+		 * The meta object literal for the '<em><b>Public ID</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_DOCUMENT__PUBLIC_ID = eINSTANCE.getVEXDocument_PublicID();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl <em>VEX Document Fragment</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXDocumentFragment()
+		 * @generated
+		 */
+		EClass VEX_DOCUMENT_FRAGMENT = eINSTANCE.getVEXDocumentFragment();
+
+		/**
+		 * The meta object literal for the '<em><b>Content</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_DOCUMENT_FRAGMENT__CONTENT = eINSTANCE.getVEXDocumentFragment_Content();
+
+		/**
+		 * The meta object literal for the '<em><b>Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_DOCUMENT_FRAGMENT__LENGTH = eINSTANCE.getVEXDocumentFragment_Length();
+
+		/**
+		 * The meta object literal for the '<em><b>Elements</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_DOCUMENT_FRAGMENT__ELEMENTS = eINSTANCE.getVEXDocumentFragment_Elements();
+
+		/**
+		 * The meta object literal for the '<em><b>Node Names</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_DOCUMENT_FRAGMENT__NODE_NAMES = eINSTANCE.getVEXDocumentFragment_NodeNames();
+
+		/**
+		 * The meta object literal for the '<em><b>Nodes</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_DOCUMENT_FRAGMENT__NODES = eINSTANCE.getVEXDocumentFragment_Nodes();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl <em>VEX Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXElement()
+		 * @generated
+		 */
+		EClass VEX_ELEMENT = eINSTANCE.getVEXElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Attribute Names</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ELEMENT__ATTRIBUTE_NAMES = eINSTANCE.getVEXElement_AttributeNames();
+
+		/**
+		 * The meta object literal for the '<em><b>Child Elements</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_ELEMENT__CHILD_ELEMENTS = eINSTANCE.getVEXElement_ChildElements();
+
+		/**
+		 * The meta object literal for the '<em><b>Child Nodes</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_ELEMENT__CHILD_NODES = eINSTANCE.getVEXElement_ChildNodes();
+
+		/**
+		 * The meta object literal for the '<em><b>Document</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_ELEMENT__DOCUMENT = eINSTANCE.getVEXElement_Document();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ELEMENT__NAME = eINSTANCE.getVEXElement_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Empty</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ELEMENT__EMPTY = eINSTANCE.getVEXElement_Empty();
+
+		/**
+		 * The meta object literal for the '<em><b>Parent</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_ELEMENT__PARENT = eINSTANCE.getVEXElement_Parent();
+
+		/**
+		 * The meta object literal for the '<em><b>Namespace Prefix</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ELEMENT__NAMESPACE_PREFIX = eINSTANCE.getVEXElement_NamespacePrefix();
+
+		/**
+		 * The meta object literal for the '<em><b>Namespace URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_ELEMENT__NAMESPACE_URI = eINSTANCE.getVEXElement_NamespaceURI();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl <em>VEX Node</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXNode()
+		 * @generated
+		 */
+		EClass VEX_NODE = eINSTANCE.getVEXNode();
+
+		/**
+		 * The meta object literal for the '<em><b>Content</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_NODE__CONTENT = eINSTANCE.getVEXNode_Content();
+
+		/**
+		 * The meta object literal for the '<em><b>End Offset</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_NODE__END_OFFSET = eINSTANCE.getVEXNode_EndOffset();
+
+		/**
+		 * The meta object literal for the '<em><b>End Position</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_NODE__END_POSITION = eINSTANCE.getVEXNode_EndPosition();
+
+		/**
+		 * The meta object literal for the '<em><b>Start Offset</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_NODE__START_OFFSET = eINSTANCE.getVEXNode_StartOffset();
+
+		/**
+		 * The meta object literal for the '<em><b>Start Position</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_NODE__START_POSITION = eINSTANCE.getVEXNode_StartPosition();
+
+		/**
+		 * The meta object literal for the '<em><b>Text</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VEX_NODE__TEXT = eINSTANCE.getVEXNode_Text();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXProcessingInstructionImpl <em>VEX Processing Instruction</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXProcessingInstructionImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getVEXProcessingInstruction()
+		 * @generated
+		 */
+		EClass VEX_PROCESSING_INSTRUCTION = eINSTANCE.getVEXProcessingInstruction();
+
+		/**
+		 * The meta object literal for the '<em><b>Attributes</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference VEX_PROCESSING_INSTRUCTION__ATTRIBUTES = eINSTANCE.getVEXProcessingInstruction_Attributes();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ValidatorImpl <em>Validator</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ValidatorImpl
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getValidator()
+		 * @generated
+		 */
+		EClass VALIDATOR = eINSTANCE.getValidator();
+
+		/**
+		 * The meta object literal for the '<em><b>Valid Root Elements</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VALIDATOR__VALID_ROOT_ELEMENTS = eINSTANCE.getValidator_ValidRootElements();
+
+		/**
+		 * The meta object literal for the '{@link java.io.Serializable <em>Serializable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see java.io.Serializable
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getSerializable()
+		 * @generated
+		 */
+		EClass SERIALIZABLE = eINSTANCE.getSerializable();
+
+		/**
+		 * The meta object literal for the '<em>Document Validation Exception</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getDocumentValidationException()
+		 * @generated
+		 */
+		EDataType DOCUMENT_VALIDATION_EXCEPTION = eINSTANCE.getDocumentValidationException();
+
+		/**
+		 * The meta object literal for the '<em>Attribute Definition</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getAttributeDefinition()
+		 * @generated
+		 */
+		EDataType ATTRIBUTE_DEFINITION = eINSTANCE.getAttributeDefinition();
+
+		/**
+		 * The meta object literal for the '<em>Set</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see java.util.Set
+		 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.DomEMFPackageImpl#getSet()
+		 * @generated
+		 */
+		EDataType SET = eINSTANCE.getSet();
+
+	}
+
+} //DomEMFPackage
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Content.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Content.java
new file mode 100644
index 0000000..a3c605b
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Content.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#getLength <em>Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getContent()
+ * @model
+ * @generated
+ */
+public interface Content extends EObject {
+	/**
+	 * 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getContent_Length()
+	 * @model
+	 * @generated
+	 */
+	int getLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#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
+	 */
+	Position createPosition(int offset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void insertString(int offset, String s);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void remove(int offset, int length);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	String getString(int offset, int length);
+
+} // Content
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Position.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Position.java
new file mode 100644
index 0000000..7c3c5dd
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Position.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Position</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position#getOffset <em>Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getPosition()
+ * @model
+ * @generated
+ */
+public interface Position extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Offset</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Offset</em>' attribute.
+	 * @see #setOffset(int)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getPosition_Offset()
+	 * @model
+	 * @generated
+	 */
+	int getOffset();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position#getOffset <em>Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Offset</em>' attribute.
+	 * @see #getOffset()
+	 * @generated
+	 */
+	void setOffset(int value);
+
+} // Position
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXAttribute.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXAttribute.java
new file mode 100644
index 0000000..756d200
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXAttribute.java
@@ -0,0 +1,200 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>VEX Attribute</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getDocument <em>Document</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getParent <em>Parent</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getLocalName <em>Local Name</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getNamespacePrefix <em>Namespace Prefix</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getNamespaceURI <em>Namespace URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXAttribute()
+ * @model
+ * @generated
+ */
+public interface VEXAttribute extends VEXNode {
+	/**
+	 * Returns the value of the '<em><b>Document</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Document</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Document</em>' reference.
+	 * @see #setDocument(VEXDocument)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXAttribute_Document()
+	 * @model
+	 * @generated
+	 */
+	VEXDocument getDocument();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getDocument <em>Document</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Document</em>' reference.
+	 * @see #getDocument()
+	 * @generated
+	 */
+	void setDocument(VEXDocument 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXAttribute_Value()
+	 * @model
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#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);
+
+	/**
+	 * Returns the value of the '<em><b>Parent</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parent</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parent</em>' reference.
+	 * @see #setParent(VEXElement)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXAttribute_Parent()
+	 * @model
+	 * @generated
+	 */
+	VEXElement getParent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getParent <em>Parent</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Parent</em>' reference.
+	 * @see #getParent()
+	 * @generated
+	 */
+	void setParent(VEXElement value);
+
+	/**
+	 * Returns the value of the '<em><b>Local Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Local 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>Local Name</em>' attribute.
+	 * @see #setLocalName(String)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXAttribute_LocalName()
+	 * @model
+	 * @generated
+	 */
+	String getLocalName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getLocalName <em>Local Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Local Name</em>' attribute.
+	 * @see #getLocalName()
+	 * @generated
+	 */
+	void setLocalName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Namespace Prefix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Namespace 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>Namespace Prefix</em>' attribute.
+	 * @see #setNamespacePrefix(String)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXAttribute_NamespacePrefix()
+	 * @model
+	 * @generated
+	 */
+	String getNamespacePrefix();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#getNamespacePrefix <em>Namespace Prefix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Namespace Prefix</em>' attribute.
+	 * @see #getNamespacePrefix()
+	 * @generated
+	 */
+	void setNamespacePrefix(String 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXAttribute_NamespaceURI()
+	 * @model
+	 * @generated
+	 */
+	String getNamespaceURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#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);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setNamespace(String prefix, String namespaceURI);
+
+} // VEXAttribute
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXComment.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXComment.java
new file mode 100644
index 0000000..d0d45e1
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXComment.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>VEX Comment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXComment()
+ * @model
+ * @generated
+ */
+public interface VEXComment extends VEXNode {
+	/**
+	 * 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXComment_Value()
+	 * @model
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment#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);
+
+} // VEXComment
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXDocument.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXDocument.java
new file mode 100644
index 0000000..6985a69
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXDocument.java
@@ -0,0 +1,290 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>VEX Document</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getEncoding <em>Encoding</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getLength <em>Length</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getRootElement <em>Root Element</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getValidator <em>Validator</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getPublicID <em>Public ID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocument()
+ * @model
+ * @generated
+ */
+public interface VEXDocument extends EObject {
+	/**
+	 * 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocument_Encoding()
+	 * @model
+	 * @generated
+	 */
+	String getEncoding();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#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>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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocument_Length()
+	 * @model
+	 * @generated
+	 */
+	int getLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#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>Root Element</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Root Element</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Root Element</em>' reference.
+	 * @see #setRootElement(VEXElement)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocument_RootElement()
+	 * @model
+	 * @generated
+	 */
+	VEXElement getRootElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getRootElement <em>Root Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Root Element</em>' reference.
+	 * @see #getRootElement()
+	 * @generated
+	 */
+	void setRootElement(VEXElement value);
+
+	/**
+	 * Returns the value of the '<em><b>Validator</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Validator</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Validator</em>' reference.
+	 * @see #setValidator(Validator)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocument_Validator()
+	 * @model
+	 * @generated
+	 */
+	Validator getValidator();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getValidator <em>Validator</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Validator</em>' reference.
+	 * @see #getValidator()
+	 * @generated
+	 */
+	void setValidator(Validator value);
+
+	/**
+	 * Returns the value of the '<em><b>Public ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Public ID</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Public ID</em>' attribute.
+	 * @see #setPublicID(String)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocument_PublicID()
+	 * @model
+	 * @generated
+	 */
+	String getPublicID();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getPublicID <em>Public ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Public ID</em>' attribute.
+	 * @see #getPublicID()
+	 * @generated
+	 */
+	void setPublicID(String value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	boolean canInsertFragment(int offset, VEXDocumentFragment fragment);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	boolean canInsertText(int offset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	Position createPosition(int offset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model exceptions="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.DocumentValidationException"
+	 * @generated
+	 */
+	void delete(int startOffset, int endOffset) throws DocumentValidationException;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	VEXElement findCommonElement(int offset1, int offset2);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	char getCharacterAt(int offset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	VEXElement getElementAt(int offset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	VEXDocumentFragment getFragment(int startOffset, int endOffset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	EList<String> getNodeNames(int startOffset, int endOffset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	EList<VEXNode> getNodes(int startOffset, int endOffset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	String getRawText(int startOffset, int endOffset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	String getText(int startOffset, int endOffset);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model exceptions="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.DocumentValidationException"
+	 * @generated
+	 */
+	void insertElement(int offset, VEXElement defaults) throws DocumentValidationException;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model exceptions="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.DocumentValidationException"
+	 * @generated
+	 */
+	void insertFragment(int offset, VEXDocumentFragment fragment) throws DocumentValidationException;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model exceptions="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.DocumentValidationException"
+	 * @generated
+	 */
+	void insertText(int offset, String text) throws DocumentValidationException;
+
+} // VEXDocument
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXDocumentFragment.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXDocumentFragment.java
new file mode 100644
index 0000000..aed3e37
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXDocumentFragment.java
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>VEX Document Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getLength <em>Length</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getElements <em>Elements</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getNodeNames <em>Node Names</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getNodes <em>Nodes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocumentFragment()
+ * @model
+ * @generated
+ */
+public interface VEXDocumentFragment extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Content</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Content</em>' reference.
+	 * @see #setContent(Content)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocumentFragment_Content()
+	 * @model
+	 * @generated
+	 */
+	Content getContent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#getContent <em>Content</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Content</em>' reference.
+	 * @see #getContent()
+	 * @generated
+	 */
+	void setContent(Content value);
+
+	/**
+	 * 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocumentFragment_Length()
+	 * @model
+	 * @generated
+	 */
+	int getLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment#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>Elements</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Elements</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>Elements</em>' reference list.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocumentFragment_Elements()
+	 * @model
+	 * @generated
+	 */
+	EList<VEXElement> getElements();
+
+	/**
+	 * Returns the value of the '<em><b>Node Names</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Node Names</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>Node Names</em>' attribute list.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocumentFragment_NodeNames()
+	 * @model
+	 * @generated
+	 */
+	EList<String> getNodeNames();
+
+	/**
+	 * Returns the value of the '<em><b>Nodes</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Nodes</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>Nodes</em>' reference list.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXDocumentFragment_Nodes()
+	 * @model
+	 * @generated
+	 */
+	EList<VEXNode> getNodes();
+
+} // VEXDocumentFragment
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXElement.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXElement.java
new file mode 100644
index 0000000..d70bce9
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXElement.java
@@ -0,0 +1,310 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>VEX Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getAttributeNames <em>Attribute Names</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getChildElements <em>Child Elements</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getChildNodes <em>Child Nodes</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getDocument <em>Document</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#isEmpty <em>Empty</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getParent <em>Parent</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getNamespacePrefix <em>Namespace Prefix</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getNamespaceURI <em>Namespace URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement()
+ * @model
+ * @generated
+ */
+public interface VEXElement extends VEXNode {
+	/**
+	 * Returns the value of the '<em><b>Attribute Names</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Attribute Names</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>Attribute Names</em>' attribute list.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_AttributeNames()
+	 * @model
+	 * @generated
+	 */
+	EList<String> getAttributeNames();
+
+	/**
+	 * Returns the value of the '<em><b>Child Elements</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Child Elements</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>Child Elements</em>' reference list.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_ChildElements()
+	 * @model
+	 * @generated
+	 */
+	EList<VEXElement> getChildElements();
+
+	/**
+	 * Returns the value of the '<em><b>Child Nodes</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Child Nodes</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>Child Nodes</em>' reference list.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_ChildNodes()
+	 * @model
+	 * @generated
+	 */
+	EList<VEXNode> getChildNodes();
+
+	/**
+	 * Returns the value of the '<em><b>Document</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Document</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Document</em>' reference.
+	 * @see #setDocument(VEXDocument)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_Document()
+	 * @model
+	 * @generated
+	 */
+	VEXDocument getDocument();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getDocument <em>Document</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Document</em>' reference.
+	 * @see #getDocument()
+	 * @generated
+	 */
+	void setDocument(VEXDocument value);
+
+	/**
+	 * 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#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>Empty</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Empty</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</em>' attribute.
+	 * @see #setEmpty(boolean)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_Empty()
+	 * @model
+	 * @generated
+	 */
+	boolean isEmpty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#isEmpty <em>Empty</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Empty</em>' attribute.
+	 * @see #isEmpty()
+	 * @generated
+	 */
+	void setEmpty(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Parent</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parent</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parent</em>' reference.
+	 * @see #setParent(VEXElement)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_Parent()
+	 * @model
+	 * @generated
+	 */
+	VEXElement getParent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getParent <em>Parent</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Parent</em>' reference.
+	 * @see #getParent()
+	 * @generated
+	 */
+	void setParent(VEXElement value);
+
+	/**
+	 * Returns the value of the '<em><b>Namespace Prefix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Namespace 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>Namespace Prefix</em>' attribute.
+	 * @see #setNamespacePrefix(String)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_NamespacePrefix()
+	 * @model
+	 * @generated
+	 */
+	String getNamespacePrefix();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getNamespacePrefix <em>Namespace Prefix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Namespace Prefix</em>' attribute.
+	 * @see #getNamespacePrefix()
+	 * @generated
+	 */
+	void setNamespacePrefix(String 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXElement_NamespaceURI()
+	 * @model
+	 * @generated
+	 */
+	String getNamespaceURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#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);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void addChild(VEXElement child);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	Object clone();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	String getAttribute(String name);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model exceptions="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.DocumentValidationException"
+	 * @generated
+	 */
+	void removeAttribute(String name) throws DocumentValidationException;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model exceptions="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.DocumentValidationException"
+	 * @generated
+	 */
+	void setAttribute(String name, String value) throws DocumentValidationException;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setContent(Content content, int offset, int i);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void insertChild(int index, VEXElement child);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setNamespace(String prefix, String namespaceURI);
+
+} // VEXElement
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXNode.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXNode.java
new file mode 100644
index 0000000..1b7aef5
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXNode.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>VEX Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getEndOffset <em>End Offset</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getEndPosition <em>End Position</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getStartOffset <em>Start Offset</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getStartPosition <em>Start Position</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getText <em>Text</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXNode()
+ * @model
+ * @generated
+ */
+public interface VEXNode extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Content</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Content</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Content</em>' reference.
+	 * @see #setContent(Content)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXNode_Content()
+	 * @model
+	 * @generated
+	 */
+	Content getContent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getContent <em>Content</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Content</em>' reference.
+	 * @see #getContent()
+	 * @generated
+	 */
+	void setContent(Content value);
+
+	/**
+	 * Returns the value of the '<em><b>End Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End Offset</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End Offset</em>' attribute.
+	 * @see #setEndOffset(int)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXNode_EndOffset()
+	 * @model
+	 * @generated
+	 */
+	int getEndOffset();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getEndOffset <em>End Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>End Offset</em>' attribute.
+	 * @see #getEndOffset()
+	 * @generated
+	 */
+	void setEndOffset(int value);
+
+	/**
+	 * Returns the value of the '<em><b>End Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End Position</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End Position</em>' reference.
+	 * @see #setEndPosition(Position)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXNode_EndPosition()
+	 * @model
+	 * @generated
+	 */
+	Position getEndPosition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getEndPosition <em>End Position</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>End Position</em>' reference.
+	 * @see #getEndPosition()
+	 * @generated
+	 */
+	void setEndPosition(Position value);
+
+	/**
+	 * Returns the value of the '<em><b>Start Offset</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Start Offset</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 Offset</em>' attribute.
+	 * @see #setStartOffset(int)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXNode_StartOffset()
+	 * @model
+	 * @generated
+	 */
+	int getStartOffset();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getStartOffset <em>Start Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Start Offset</em>' attribute.
+	 * @see #getStartOffset()
+	 * @generated
+	 */
+	void setStartOffset(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Start Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Start Position</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Start Position</em>' reference.
+	 * @see #setStartPosition(Position)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXNode_StartPosition()
+	 * @model
+	 * @generated
+	 */
+	Position getStartPosition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getStartPosition <em>Start Position</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Start Position</em>' reference.
+	 * @see #getStartPosition()
+	 * @generated
+	 */
+	void setStartPosition(Position value);
+
+	/**
+	 * Returns the value of the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Text</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Text</em>' attribute.
+	 * @see #setText(String)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXNode_Text()
+	 * @model
+	 * @generated
+	 */
+	String getText();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode#getText <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Text</em>' attribute.
+	 * @see #getText()
+	 * @generated
+	 */
+	void setText(String value);
+
+} // VEXNode
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXProcessingInstruction.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXProcessingInstruction.java
new file mode 100644
index 0000000..f6629c8
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/VEXProcessingInstruction.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>VEX Processing Instruction</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#getAttributes <em>Attributes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXProcessingInstruction()
+ * @model
+ * @generated
+ */
+public interface VEXProcessingInstruction extends VEXNode {
+	/**
+	 * Returns the value of the '<em><b>Attributes</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Attributes</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>Attributes</em>' reference list.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getVEXProcessingInstruction_Attributes()
+	 * @model
+	 * @generated
+	 */
+	EList<VEXAttribute> getAttributes();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	boolean removeAttribute(String attributeName);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setAttribute(String attributeName, String value);
+
+} // VEXProcessingInstruction
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Validator.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Validator.java
new file mode 100644
index 0000000..5e2467e
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/I/Validator.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.I;
+
+import java.io.Serializable;
+
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Validator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getValidRootElements <em>Valid Root Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getValidator()
+ * @model superTypes="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Serializable"
+ * @generated
+ */
+public interface Validator extends EObject, Serializable {
+	/**
+	 * Returns the value of the '<em><b>Valid Root Elements</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Valid Root Elements</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 Root Elements</em>' attribute.
+	 * @see #setValidRootElements(Set)
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#getValidator_ValidRootElements()
+	 * @model dataType="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Set"
+	 * @generated
+	 */
+	Set getValidRootElements();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getValidRootElements <em>Valid Root Elements</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Valid Root Elements</em>' attribute.
+	 * @see #getValidRootElements()
+	 * @generated
+	 */
+	void setValidRootElements(Set value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model dataType="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.AttributeDefinition"
+	 * @generated
+	 */
+	AttributeDefinition getAttributeDefinition(String element, String attribute);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model dataType="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.AttributeDefinition"
+	 * @generated
+	 */
+	EList<AttributeDefinition> getAttributeDefinitions(String element);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model dataType="org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Set<org.eclipse.emf.ecore.EString>"
+	 * @generated
+	 */
+	Set<String> getValidItems(String element);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model nodesMany="true"
+	 * @generated
+	 */
+	boolean isValidSequence(String element, EList<String> nodes, boolean partial);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model seq1Many="true" seq2Many="true" seq3Many="true"
+	 * @generated
+	 */
+	boolean isValidSequence(String element, EList<String> seq1, EList<String> seq2, EList<String> seq3, boolean partial);
+
+} // Validator
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/ContentImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/ContentImpl.java
new file mode 100644
index 0000000..25c96c0
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/ContentImpl.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+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;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ContentImpl#getLength <em>Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ContentImpl extends EObjectImpl implements Content {
+	/**
+	 * 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 ContentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.CONTENT;
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.CONTENT__LENGTH, oldLength, length));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position createPosition(int offset) {
+		// 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 void insertString(int offset, String s) {
+		// 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 void remove(int offset, int length) {
+		// 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 String getString(int offset, int length) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.CONTENT__LENGTH:
+				return new Integer(getLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.CONTENT__LENGTH:
+				setLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.CONTENT__LENGTH:
+				setLength(LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.CONTENT__LENGTH:
+				return length != LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (length: ");
+		result.append(length);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ContentImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/DomEMFFactoryImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/DomEMFFactoryImpl.java
new file mode 100644
index 0000000..c76f923
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/DomEMFFactoryImpl.java
@@ -0,0 +1,304 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import java.util.Set;
+
+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;
+
+import org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.*;
+
+import org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DomEMFFactoryImpl extends EFactoryImpl implements DomEMFFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DomEMFFactory init() {
+		try {
+			DomEMFFactory theDomEMFFactory = (DomEMFFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/wst/xml/vex/core/internal/provisional/dom.ecore"); 
+			if (theDomEMFFactory != null) {
+				return theDomEMFFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new DomEMFFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DomEMFFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case DomEMFPackage.CONTENT: return createContent();
+			case DomEMFPackage.POSITION: return createPosition();
+			case DomEMFPackage.VEX_ATTRIBUTE: return createVEXAttribute();
+			case DomEMFPackage.VEX_COMMENT: return createVEXComment();
+			case DomEMFPackage.VEX_DOCUMENT: return createVEXDocument();
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT: return createVEXDocumentFragment();
+			case DomEMFPackage.VEX_ELEMENT: return createVEXElement();
+			case DomEMFPackage.VEX_NODE: return createVEXNode();
+			case DomEMFPackage.VEX_PROCESSING_INSTRUCTION: return createVEXProcessingInstruction();
+			case DomEMFPackage.VALIDATOR: return createValidator();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case DomEMFPackage.DOCUMENT_VALIDATION_EXCEPTION:
+				return createDocumentValidationExceptionFromString(eDataType, initialValue);
+			case DomEMFPackage.ATTRIBUTE_DEFINITION:
+				return createAttributeDefinitionFromString(eDataType, initialValue);
+			case DomEMFPackage.SET:
+				return createSetFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case DomEMFPackage.DOCUMENT_VALIDATION_EXCEPTION:
+				return convertDocumentValidationExceptionToString(eDataType, instanceValue);
+			case DomEMFPackage.ATTRIBUTE_DEFINITION:
+				return convertAttributeDefinitionToString(eDataType, instanceValue);
+			case DomEMFPackage.SET:
+				return convertSetToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Content createContent() {
+		ContentImpl content = new ContentImpl();
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position createPosition() {
+		PositionImpl position = new PositionImpl();
+		return position;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXAttribute createVEXAttribute() {
+		VEXAttributeImpl vexAttribute = new VEXAttributeImpl();
+		return vexAttribute;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXComment createVEXComment() {
+		VEXCommentImpl vexComment = new VEXCommentImpl();
+		return vexComment;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXDocument createVEXDocument() {
+		VEXDocumentImpl vexDocument = new VEXDocumentImpl();
+		return vexDocument;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXDocumentFragment createVEXDocumentFragment() {
+		VEXDocumentFragmentImpl vexDocumentFragment = new VEXDocumentFragmentImpl();
+		return vexDocumentFragment;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXElement createVEXElement() {
+		VEXElementImpl vexElement = new VEXElementImpl();
+		return vexElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXNode createVEXNode() {
+		VEXNodeImpl vexNode = new VEXNodeImpl();
+		return vexNode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXProcessingInstruction createVEXProcessingInstruction() {
+		VEXProcessingInstructionImpl vexProcessingInstruction = new VEXProcessingInstructionImpl();
+		return vexProcessingInstruction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Validator createValidator() {
+		ValidatorImpl validator = new ValidatorImpl();
+		return validator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DocumentValidationException createDocumentValidationExceptionFromString(EDataType eDataType, String initialValue) {
+		return (DocumentValidationException)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertDocumentValidationExceptionToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AttributeDefinition createAttributeDefinitionFromString(EDataType eDataType, String initialValue) {
+		return (AttributeDefinition)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertAttributeDefinitionToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Set<?> createSetFromString(EDataType eDataType, String initialValue) {
+		return (Set<?>)super.createFromString(initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertSetToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DomEMFPackage getDomEMFPackage() {
+		return (DomEMFPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static DomEMFPackage getPackage() {
+		return DomEMFPackage.eINSTANCE;
+	}
+
+} //DomEMFFactoryImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/DomEMFPackageImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/DomEMFPackageImpl.java
new file mode 100644
index 0000000..22ef5a4
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/DomEMFPackageImpl.java
@@ -0,0 +1,1005 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import java.io.Serializable;
+
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator;
+
+import org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DomEMFPackageImpl extends EPackageImpl implements DomEMFPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass contentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass positionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass vexAttributeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass vexCommentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass vexDocumentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass vexDocumentFragmentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass vexElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass vexNodeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass vexProcessingInstructionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass validatorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass serializableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType documentValidationExceptionEDataType = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType attributeDefinitionEDataType = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType setEDataType = 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private DomEMFPackageImpl() {
+		super(eNS_URI, DomEMFFactory.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 DomEMFPackage init() {
+		if (isInited) return (DomEMFPackage)EPackage.Registry.INSTANCE.getEPackage(DomEMFPackage.eNS_URI);
+
+		// Obtain or create and register package
+		DomEMFPackageImpl theDomEMFPackage = (DomEMFPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof DomEMFPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new DomEMFPackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theDomEMFPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theDomEMFPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theDomEMFPackage.freeze();
+
+		return theDomEMFPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getContent() {
+		return contentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getContent_Length() {
+		return (EAttribute)contentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPosition() {
+		return positionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPosition_Offset() {
+		return (EAttribute)positionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getVEXAttribute() {
+		return vexAttributeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXAttribute_Document() {
+		return (EReference)vexAttributeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXAttribute_Value() {
+		return (EAttribute)vexAttributeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXAttribute_Parent() {
+		return (EReference)vexAttributeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXAttribute_LocalName() {
+		return (EAttribute)vexAttributeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXAttribute_NamespacePrefix() {
+		return (EAttribute)vexAttributeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXAttribute_NamespaceURI() {
+		return (EAttribute)vexAttributeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getVEXComment() {
+		return vexCommentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXComment_Value() {
+		return (EAttribute)vexCommentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getVEXDocument() {
+		return vexDocumentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXDocument_Encoding() {
+		return (EAttribute)vexDocumentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXDocument_Length() {
+		return (EAttribute)vexDocumentEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXDocument_RootElement() {
+		return (EReference)vexDocumentEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXDocument_Validator() {
+		return (EReference)vexDocumentEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXDocument_PublicID() {
+		return (EAttribute)vexDocumentEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getVEXDocumentFragment() {
+		return vexDocumentFragmentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXDocumentFragment_Content() {
+		return (EReference)vexDocumentFragmentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXDocumentFragment_Length() {
+		return (EAttribute)vexDocumentFragmentEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXDocumentFragment_Elements() {
+		return (EReference)vexDocumentFragmentEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXDocumentFragment_NodeNames() {
+		return (EAttribute)vexDocumentFragmentEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXDocumentFragment_Nodes() {
+		return (EReference)vexDocumentFragmentEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getVEXElement() {
+		return vexElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXElement_AttributeNames() {
+		return (EAttribute)vexElementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXElement_ChildElements() {
+		return (EReference)vexElementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXElement_ChildNodes() {
+		return (EReference)vexElementEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXElement_Document() {
+		return (EReference)vexElementEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXElement_Name() {
+		return (EAttribute)vexElementEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXElement_Empty() {
+		return (EAttribute)vexElementEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXElement_Parent() {
+		return (EReference)vexElementEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXElement_NamespacePrefix() {
+		return (EAttribute)vexElementEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXElement_NamespaceURI() {
+		return (EAttribute)vexElementEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getVEXNode() {
+		return vexNodeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXNode_Content() {
+		return (EReference)vexNodeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXNode_EndOffset() {
+		return (EAttribute)vexNodeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXNode_EndPosition() {
+		return (EReference)vexNodeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXNode_StartOffset() {
+		return (EAttribute)vexNodeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXNode_StartPosition() {
+		return (EReference)vexNodeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getVEXNode_Text() {
+		return (EAttribute)vexNodeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getVEXProcessingInstruction() {
+		return vexProcessingInstructionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getVEXProcessingInstruction_Attributes() {
+		return (EReference)vexProcessingInstructionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getValidator() {
+		return validatorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getValidator_ValidRootElements() {
+		return (EAttribute)validatorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSerializable() {
+		return serializableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getDocumentValidationException() {
+		return documentValidationExceptionEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getAttributeDefinition() {
+		return attributeDefinitionEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getSet() {
+		return setEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DomEMFFactory getDomEMFFactory() {
+		return (DomEMFFactory)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
+		contentEClass = createEClass(CONTENT);
+		createEAttribute(contentEClass, CONTENT__LENGTH);
+
+		positionEClass = createEClass(POSITION);
+		createEAttribute(positionEClass, POSITION__OFFSET);
+
+		vexAttributeEClass = createEClass(VEX_ATTRIBUTE);
+		createEReference(vexAttributeEClass, VEX_ATTRIBUTE__DOCUMENT);
+		createEAttribute(vexAttributeEClass, VEX_ATTRIBUTE__VALUE);
+		createEReference(vexAttributeEClass, VEX_ATTRIBUTE__PARENT);
+		createEAttribute(vexAttributeEClass, VEX_ATTRIBUTE__LOCAL_NAME);
+		createEAttribute(vexAttributeEClass, VEX_ATTRIBUTE__NAMESPACE_PREFIX);
+		createEAttribute(vexAttributeEClass, VEX_ATTRIBUTE__NAMESPACE_URI);
+
+		vexCommentEClass = createEClass(VEX_COMMENT);
+		createEAttribute(vexCommentEClass, VEX_COMMENT__VALUE);
+
+		vexDocumentEClass = createEClass(VEX_DOCUMENT);
+		createEAttribute(vexDocumentEClass, VEX_DOCUMENT__ENCODING);
+		createEAttribute(vexDocumentEClass, VEX_DOCUMENT__LENGTH);
+		createEReference(vexDocumentEClass, VEX_DOCUMENT__ROOT_ELEMENT);
+		createEReference(vexDocumentEClass, VEX_DOCUMENT__VALIDATOR);
+		createEAttribute(vexDocumentEClass, VEX_DOCUMENT__PUBLIC_ID);
+
+		vexDocumentFragmentEClass = createEClass(VEX_DOCUMENT_FRAGMENT);
+		createEReference(vexDocumentFragmentEClass, VEX_DOCUMENT_FRAGMENT__CONTENT);
+		createEAttribute(vexDocumentFragmentEClass, VEX_DOCUMENT_FRAGMENT__LENGTH);
+		createEReference(vexDocumentFragmentEClass, VEX_DOCUMENT_FRAGMENT__ELEMENTS);
+		createEAttribute(vexDocumentFragmentEClass, VEX_DOCUMENT_FRAGMENT__NODE_NAMES);
+		createEReference(vexDocumentFragmentEClass, VEX_DOCUMENT_FRAGMENT__NODES);
+
+		vexElementEClass = createEClass(VEX_ELEMENT);
+		createEAttribute(vexElementEClass, VEX_ELEMENT__ATTRIBUTE_NAMES);
+		createEReference(vexElementEClass, VEX_ELEMENT__CHILD_ELEMENTS);
+		createEReference(vexElementEClass, VEX_ELEMENT__CHILD_NODES);
+		createEReference(vexElementEClass, VEX_ELEMENT__DOCUMENT);
+		createEAttribute(vexElementEClass, VEX_ELEMENT__NAME);
+		createEAttribute(vexElementEClass, VEX_ELEMENT__EMPTY);
+		createEReference(vexElementEClass, VEX_ELEMENT__PARENT);
+		createEAttribute(vexElementEClass, VEX_ELEMENT__NAMESPACE_PREFIX);
+		createEAttribute(vexElementEClass, VEX_ELEMENT__NAMESPACE_URI);
+
+		vexNodeEClass = createEClass(VEX_NODE);
+		createEReference(vexNodeEClass, VEX_NODE__CONTENT);
+		createEAttribute(vexNodeEClass, VEX_NODE__END_OFFSET);
+		createEReference(vexNodeEClass, VEX_NODE__END_POSITION);
+		createEAttribute(vexNodeEClass, VEX_NODE__START_OFFSET);
+		createEReference(vexNodeEClass, VEX_NODE__START_POSITION);
+		createEAttribute(vexNodeEClass, VEX_NODE__TEXT);
+
+		vexProcessingInstructionEClass = createEClass(VEX_PROCESSING_INSTRUCTION);
+		createEReference(vexProcessingInstructionEClass, VEX_PROCESSING_INSTRUCTION__ATTRIBUTES);
+
+		validatorEClass = createEClass(VALIDATOR);
+		createEAttribute(validatorEClass, VALIDATOR__VALID_ROOT_ELEMENTS);
+
+		serializableEClass = createEClass(SERIALIZABLE);
+
+		// Create data types
+		documentValidationExceptionEDataType = createEDataType(DOCUMENT_VALIDATION_EXCEPTION);
+		attributeDefinitionEDataType = createEDataType(ATTRIBUTE_DEFINITION);
+		setEDataType = createEDataType(SET);
+	}
+
+	/**
+	 * <!-- 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);
+
+		// Create type parameters
+		addETypeParameter(setEDataType, "T");
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		vexAttributeEClass.getESuperTypes().add(this.getVEXNode());
+		vexCommentEClass.getESuperTypes().add(this.getVEXNode());
+		vexElementEClass.getESuperTypes().add(this.getVEXNode());
+		vexProcessingInstructionEClass.getESuperTypes().add(this.getVEXNode());
+		validatorEClass.getESuperTypes().add(this.getSerializable());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(contentEClass, Content.class, "Content", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getContent_Length(), ecorePackage.getEInt(), "length", null, 0, 1, Content.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		EOperation op = addEOperation(contentEClass, this.getPosition(), "createPosition", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(contentEClass, null, "insertString", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "s", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(contentEClass, null, "remove", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "length", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(contentEClass, ecorePackage.getEString(), "getString", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "length", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(positionEClass, Position.class, "Position", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPosition_Offset(), ecorePackage.getEInt(), "offset", null, 0, 1, Position.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(vexAttributeEClass, VEXAttribute.class, "VEXAttribute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getVEXAttribute_Document(), this.getVEXDocument(), null, "document", null, 0, 1, VEXAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXAttribute_Value(), ecorePackage.getEString(), "value", null, 0, 1, VEXAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXAttribute_Parent(), this.getVEXElement(), null, "parent", null, 0, 1, VEXAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXAttribute_LocalName(), ecorePackage.getEString(), "localName", null, 0, 1, VEXAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXAttribute_NamespacePrefix(), ecorePackage.getEString(), "namespacePrefix", null, 0, 1, VEXAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXAttribute_NamespaceURI(), ecorePackage.getEString(), "namespaceURI", null, 0, 1, VEXAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(vexAttributeEClass, null, "setNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "prefix", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "namespaceURI", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(vexCommentEClass, VEXComment.class, "VEXComment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getVEXComment_Value(), ecorePackage.getEString(), "value", null, 0, 1, VEXComment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(vexDocumentEClass, VEXDocument.class, "VEXDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getVEXDocument_Encoding(), ecorePackage.getEString(), "encoding", null, 0, 1, VEXDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXDocument_Length(), ecorePackage.getEInt(), "length", null, 0, 1, VEXDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXDocument_RootElement(), this.getVEXElement(), null, "rootElement", null, 0, 1, VEXDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXDocument_Validator(), this.getValidator(), null, "validator", null, 0, 1, VEXDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXDocument_PublicID(), ecorePackage.getEString(), "publicID", null, 0, 1, VEXDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, ecorePackage.getEBoolean(), "canInsertFragment", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getVEXDocumentFragment(), "fragment", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, ecorePackage.getEBoolean(), "canInsertText", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, this.getPosition(), "createPosition", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, null, "delete", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "startOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "endOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEException(op, this.getDocumentValidationException());
+
+		op = addEOperation(vexDocumentEClass, this.getVEXElement(), "findCommonElement", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset1", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset2", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, ecorePackage.getEChar(), "getCharacterAt", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, this.getVEXElement(), "getElementAt", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, this.getVEXDocumentFragment(), "getFragment", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "startOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "endOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, ecorePackage.getEString(), "getNodeNames", 0, -1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "startOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "endOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, this.getVEXNode(), "getNodes", 0, -1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "startOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "endOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, ecorePackage.getEString(), "getRawText", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "startOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "endOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, ecorePackage.getEString(), "getText", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "startOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "endOffset", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexDocumentEClass, null, "insertElement", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getVEXElement(), "defaults", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEException(op, this.getDocumentValidationException());
+
+		op = addEOperation(vexDocumentEClass, null, "insertFragment", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getVEXDocumentFragment(), "fragment", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEException(op, this.getDocumentValidationException());
+
+		op = addEOperation(vexDocumentEClass, null, "insertText", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "text", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEException(op, this.getDocumentValidationException());
+
+		initEClass(vexDocumentFragmentEClass, VEXDocumentFragment.class, "VEXDocumentFragment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getVEXDocumentFragment_Content(), this.getContent(), null, "content", null, 0, 1, VEXDocumentFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXDocumentFragment_Length(), ecorePackage.getEInt(), "length", null, 0, 1, VEXDocumentFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXDocumentFragment_Elements(), this.getVEXElement(), null, "elements", null, 0, -1, VEXDocumentFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXDocumentFragment_NodeNames(), ecorePackage.getEString(), "nodeNames", null, 0, -1, VEXDocumentFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXDocumentFragment_Nodes(), this.getVEXNode(), null, "nodes", null, 0, -1, VEXDocumentFragment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(vexElementEClass, VEXElement.class, "VEXElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getVEXElement_AttributeNames(), ecorePackage.getEString(), "attributeNames", null, 0, -1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXElement_ChildElements(), this.getVEXElement(), null, "childElements", null, 0, -1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXElement_ChildNodes(), this.getVEXNode(), null, "childNodes", null, 0, -1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXElement_Document(), this.getVEXDocument(), null, "document", null, 0, 1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXElement_Empty(), ecorePackage.getEBoolean(), "empty", null, 0, 1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXElement_Parent(), this.getVEXElement(), null, "parent", null, 0, 1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXElement_NamespacePrefix(), ecorePackage.getEString(), "namespacePrefix", null, 0, 1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXElement_NamespaceURI(), ecorePackage.getEString(), "namespaceURI", null, 0, 1, VEXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(vexElementEClass, null, "addChild", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getVEXElement(), "child", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(vexElementEClass, ecorePackage.getEJavaObject(), "clone", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexElementEClass, ecorePackage.getEString(), "getAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexElementEClass, null, "removeAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEException(op, this.getDocumentValidationException());
+
+		op = addEOperation(vexElementEClass, null, "setAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "value", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEException(op, this.getDocumentValidationException());
+
+		op = addEOperation(vexElementEClass, null, "setContent", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getContent(), "content", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "offset", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "i", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexElementEClass, null, "insertChild", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "index", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getVEXElement(), "child", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexElementEClass, null, "setNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "prefix", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "namespaceURI", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(vexNodeEClass, VEXNode.class, "VEXNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getVEXNode_Content(), this.getContent(), null, "content", null, 0, 1, VEXNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXNode_EndOffset(), ecorePackage.getEInt(), "endOffset", null, 0, 1, VEXNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXNode_EndPosition(), this.getPosition(), null, "endPosition", null, 0, 1, VEXNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXNode_StartOffset(), ecorePackage.getEInt(), "startOffset", null, 0, 1, VEXNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVEXNode_StartPosition(), this.getPosition(), null, "startPosition", null, 0, 1, VEXNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getVEXNode_Text(), ecorePackage.getEString(), "text", null, 0, 1, VEXNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(vexProcessingInstructionEClass, VEXProcessingInstruction.class, "VEXProcessingInstruction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getVEXProcessingInstruction_Attributes(), this.getVEXAttribute(), null, "attributes", null, 0, -1, VEXProcessingInstruction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(vexProcessingInstructionEClass, ecorePackage.getEBoolean(), "removeAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "attributeName", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(vexProcessingInstructionEClass, null, "setAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "attributeName", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "value", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(validatorEClass, Validator.class, "Validator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getValidator_ValidRootElements(), this.getSet(), "validRootElements", null, 0, 1, Validator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(validatorEClass, this.getAttributeDefinition(), "getAttributeDefinition", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "attribute", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(validatorEClass, this.getAttributeDefinition(), "getAttributeDefinitions", 0, -1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(validatorEClass, null, "getValidItems", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+		EGenericType g1 = createEGenericType(this.getSet());
+		EGenericType g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		initEOperation(op, g1);
+
+		op = addEOperation(validatorEClass, ecorePackage.getEBoolean(), "isValidSequence", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "nodes", 0, -1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEBoolean(), "partial", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(validatorEClass, ecorePackage.getEBoolean(), "isValidSequence", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "seq1", 0, -1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "seq2", 0, -1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "seq3", 0, -1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEBoolean(), "partial", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(serializableEClass, Serializable.class, "Serializable", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+		// Initialize data types
+		initEDataType(documentValidationExceptionEDataType, DocumentValidationException.class, "DocumentValidationException", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+		initEDataType(attributeDefinitionEDataType, AttributeDefinition.class, "AttributeDefinition", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+		initEDataType(setEDataType, Set.class, "Set", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //DomEMFPackageImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/PositionImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/PositionImpl.java
new file mode 100644
index 0000000..89b4ff0
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/PositionImpl.java
@@ -0,0 +1,172 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+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;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Position</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.PositionImpl#getOffset <em>Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PositionImpl extends EObjectImpl implements Position {
+	/**
+	 * The default value of the '{@link #getOffset() <em>Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOffset()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int OFFSET_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getOffset() <em>Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOffset()
+	 * @generated
+	 * @ordered
+	 */
+	protected int offset = OFFSET_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PositionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.POSITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getOffset() {
+		return offset;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOffset(int newOffset) {
+		int oldOffset = offset;
+		offset = newOffset;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.POSITION__OFFSET, oldOffset, offset));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.POSITION__OFFSET:
+				return new Integer(getOffset());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.POSITION__OFFSET:
+				setOffset(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.POSITION__OFFSET:
+				setOffset(OFFSET_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.POSITION__OFFSET:
+				return offset != OFFSET_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (offset: ");
+		result.append(offset);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PositionImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXAttributeImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXAttributeImpl.java
new file mode 100644
index 0000000..88717e8
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXAttributeImpl.java
@@ -0,0 +1,467 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>VEX Attribute</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl#getDocument <em>Document</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl#getParent <em>Parent</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl#getLocalName <em>Local Name</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl#getNamespacePrefix <em>Namespace Prefix</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXAttributeImpl#getNamespaceURI <em>Namespace URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VEXAttributeImpl extends VEXNodeImpl implements VEXAttribute {
+	/**
+	 * The cached value of the '{@link #getDocument() <em>Document</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDocument()
+	 * @generated
+	 * @ordered
+	 */
+	protected VEXDocument document;
+
+	/**
+	 * 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;
+
+	/**
+	 * The cached value of the '{@link #getParent() <em>Parent</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParent()
+	 * @generated
+	 * @ordered
+	 */
+	protected VEXElement parent;
+
+	/**
+	 * The default value of the '{@link #getLocalName() <em>Local Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocalName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LOCAL_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLocalName() <em>Local Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocalName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String localName = LOCAL_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNamespacePrefix() <em>Namespace Prefix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespacePrefix()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAMESPACE_PREFIX_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNamespacePrefix() <em>Namespace Prefix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespacePrefix()
+	 * @generated
+	 * @ordered
+	 */
+	protected String namespacePrefix = NAMESPACE_PREFIX_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 VEXAttributeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.VEX_ATTRIBUTE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXDocument getDocument() {
+		if (document != null && document.eIsProxy()) {
+			InternalEObject oldDocument = (InternalEObject)document;
+			document = (VEXDocument)eResolveProxy(oldDocument);
+			if (document != oldDocument) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_ATTRIBUTE__DOCUMENT, oldDocument, document));
+			}
+		}
+		return document;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXDocument basicGetDocument() {
+		return document;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDocument(VEXDocument newDocument) {
+		VEXDocument oldDocument = document;
+		document = newDocument;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_ATTRIBUTE__DOCUMENT, oldDocument, document));
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.VEX_ATTRIBUTE__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXElement getParent() {
+		if (parent != null && parent.eIsProxy()) {
+			InternalEObject oldParent = (InternalEObject)parent;
+			parent = (VEXElement)eResolveProxy(oldParent);
+			if (parent != oldParent) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_ATTRIBUTE__PARENT, oldParent, parent));
+			}
+		}
+		return parent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXElement basicGetParent() {
+		return parent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParent(VEXElement newParent) {
+		VEXElement oldParent = parent;
+		parent = newParent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_ATTRIBUTE__PARENT, oldParent, parent));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLocalName() {
+		return localName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLocalName(String newLocalName) {
+		String oldLocalName = localName;
+		localName = newLocalName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_ATTRIBUTE__LOCAL_NAME, oldLocalName, localName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNamespacePrefix() {
+		return namespacePrefix;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNamespacePrefix(String newNamespacePrefix) {
+		String oldNamespacePrefix = namespacePrefix;
+		namespacePrefix = newNamespacePrefix;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_PREFIX, oldNamespacePrefix, namespacePrefix));
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_URI, oldNamespaceURI, namespaceURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNamespace(String prefix, String namespaceURI) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_ATTRIBUTE__DOCUMENT:
+				if (resolve) return getDocument();
+				return basicGetDocument();
+			case DomEMFPackage.VEX_ATTRIBUTE__VALUE:
+				return getValue();
+			case DomEMFPackage.VEX_ATTRIBUTE__PARENT:
+				if (resolve) return getParent();
+				return basicGetParent();
+			case DomEMFPackage.VEX_ATTRIBUTE__LOCAL_NAME:
+				return getLocalName();
+			case DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_PREFIX:
+				return getNamespacePrefix();
+			case DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_URI:
+				return getNamespaceURI();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_ATTRIBUTE__DOCUMENT:
+				setDocument((VEXDocument)newValue);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__VALUE:
+				setValue((String)newValue);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__PARENT:
+				setParent((VEXElement)newValue);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__LOCAL_NAME:
+				setLocalName((String)newValue);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_PREFIX:
+				setNamespacePrefix((String)newValue);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_URI:
+				setNamespaceURI((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_ATTRIBUTE__DOCUMENT:
+				setDocument((VEXDocument)null);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__PARENT:
+				setParent((VEXElement)null);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__LOCAL_NAME:
+				setLocalName(LOCAL_NAME_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_PREFIX:
+				setNamespacePrefix(NAMESPACE_PREFIX_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_URI:
+				setNamespaceURI(NAMESPACE_URI_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_ATTRIBUTE__DOCUMENT:
+				return document != null;
+			case DomEMFPackage.VEX_ATTRIBUTE__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+			case DomEMFPackage.VEX_ATTRIBUTE__PARENT:
+				return parent != null;
+			case DomEMFPackage.VEX_ATTRIBUTE__LOCAL_NAME:
+				return LOCAL_NAME_EDEFAULT == null ? localName != null : !LOCAL_NAME_EDEFAULT.equals(localName);
+			case DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_PREFIX:
+				return NAMESPACE_PREFIX_EDEFAULT == null ? namespacePrefix != null : !NAMESPACE_PREFIX_EDEFAULT.equals(namespacePrefix);
+			case DomEMFPackage.VEX_ATTRIBUTE__NAMESPACE_URI:
+				return NAMESPACE_URI_EDEFAULT == null ? namespaceURI != null : !NAMESPACE_URI_EDEFAULT.equals(namespaceURI);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(", localName: ");
+		result.append(localName);
+		result.append(", namespacePrefix: ");
+		result.append(namespacePrefix);
+		result.append(", namespaceURI: ");
+		result.append(namespaceURI);
+		result.append(')');
+		return result.toString();
+	}
+
+} //VEXAttributeImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXCommentImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXCommentImpl.java
new file mode 100644
index 0000000..54fca6b
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXCommentImpl.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>VEX Comment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXCommentImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VEXCommentImpl extends VEXNodeImpl implements VEXComment {
+	/**
+	 * 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 VEXCommentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.VEX_COMMENT;
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.VEX_COMMENT__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_COMMENT__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_COMMENT__VALUE:
+				setValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_COMMENT__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_COMMENT__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	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();
+	}
+
+} //VEXCommentImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXDocumentFragmentImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXDocumentFragmentImpl.java
new file mode 100644
index 0000000..2b14c47
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXDocumentFragmentImpl.java
@@ -0,0 +1,348 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import java.util.Collection;
+
+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.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.EObjectResolvingEList;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>VEX Document Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl#getLength <em>Length</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl#getElements <em>Elements</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl#getNodeNames <em>Node Names</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentFragmentImpl#getNodes <em>Nodes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VEXDocumentFragmentImpl extends EObjectImpl implements VEXDocumentFragment {
+	/**
+	 * The cached value of the '{@link #getContent() <em>Content</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected Content content;
+
+	/**
+	 * 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 cached value of the '{@link #getElements() <em>Elements</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElements()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<VEXElement> elements;
+
+	/**
+	 * The cached value of the '{@link #getNodeNames() <em>Node Names</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNodeNames()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> nodeNames;
+
+	/**
+	 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNodes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<VEXNode> nodes;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXDocumentFragmentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.VEX_DOCUMENT_FRAGMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Content getContent() {
+		if (content != null && content.eIsProxy()) {
+			InternalEObject oldContent = (InternalEObject)content;
+			content = (Content)eResolveProxy(oldContent);
+			if (content != oldContent) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_DOCUMENT_FRAGMENT__CONTENT, oldContent, content));
+			}
+		}
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Content basicGetContent() {
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContent(Content newContent) {
+		Content oldContent = content;
+		content = newContent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_DOCUMENT_FRAGMENT__CONTENT, oldContent, content));
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.VEX_DOCUMENT_FRAGMENT__LENGTH, oldLength, length));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<VEXElement> getElements() {
+		if (elements == null) {
+			elements = new EObjectResolvingEList<VEXElement>(VEXElement.class, this, DomEMFPackage.VEX_DOCUMENT_FRAGMENT__ELEMENTS);
+		}
+		return elements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getNodeNames() {
+		if (nodeNames == null) {
+			nodeNames = new EDataTypeUniqueEList<String>(String.class, this, DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODE_NAMES);
+		}
+		return nodeNames;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<VEXNode> getNodes() {
+		if (nodes == null) {
+			nodes = new EObjectResolvingEList<VEXNode>(VEXNode.class, this, DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODES);
+		}
+		return nodes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__CONTENT:
+				if (resolve) return getContent();
+				return basicGetContent();
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__LENGTH:
+				return new Integer(getLength());
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__ELEMENTS:
+				return getElements();
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODE_NAMES:
+				return getNodeNames();
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODES:
+				return getNodes();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__CONTENT:
+				setContent((Content)newValue);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__LENGTH:
+				setLength(((Integer)newValue).intValue());
+				return;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__ELEMENTS:
+				getElements().clear();
+				getElements().addAll((Collection<? extends VEXElement>)newValue);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODE_NAMES:
+				getNodeNames().clear();
+				getNodeNames().addAll((Collection<? extends String>)newValue);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODES:
+				getNodes().clear();
+				getNodes().addAll((Collection<? extends VEXNode>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__CONTENT:
+				setContent((Content)null);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__LENGTH:
+				setLength(LENGTH_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__ELEMENTS:
+				getElements().clear();
+				return;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODE_NAMES:
+				getNodeNames().clear();
+				return;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODES:
+				getNodes().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__CONTENT:
+				return content != null;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__LENGTH:
+				return length != LENGTH_EDEFAULT;
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__ELEMENTS:
+				return elements != null && !elements.isEmpty();
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODE_NAMES:
+				return nodeNames != null && !nodeNames.isEmpty();
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT__NODES:
+				return nodes != null && !nodes.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (length: ");
+		result.append(length);
+		result.append(", nodeNames: ");
+		result.append(nodeNames);
+		result.append(')');
+		return result.toString();
+	}
+
+} //VEXDocumentFragmentImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXDocumentImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXDocumentImpl.java
new file mode 100644
index 0000000..37485bf
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXDocumentImpl.java
@@ -0,0 +1,575 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+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.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>VEX Document</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl#getEncoding <em>Encoding</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl#getLength <em>Length</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl#getRootElement <em>Root Element</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl#getValidator <em>Validator</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXDocumentImpl#getPublicID <em>Public ID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VEXDocumentImpl extends EObjectImpl implements VEXDocument {
+	/**
+	 * 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 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 cached value of the '{@link #getRootElement() <em>Root Element</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRootElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected VEXElement rootElement;
+
+	/**
+	 * The cached value of the '{@link #getValidator() <em>Validator</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidator()
+	 * @generated
+	 * @ordered
+	 */
+	protected Validator validator;
+
+	/**
+	 * The default value of the '{@link #getPublicID() <em>Public ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPublicID()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PUBLIC_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPublicID() <em>Public ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPublicID()
+	 * @generated
+	 * @ordered
+	 */
+	protected String publicID = PUBLIC_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXDocumentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.VEX_DOCUMENT;
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.VEX_DOCUMENT__ENCODING, oldEncoding, encoding));
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.VEX_DOCUMENT__LENGTH, oldLength, length));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXElement getRootElement() {
+		if (rootElement != null && rootElement.eIsProxy()) {
+			InternalEObject oldRootElement = (InternalEObject)rootElement;
+			rootElement = (VEXElement)eResolveProxy(oldRootElement);
+			if (rootElement != oldRootElement) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_DOCUMENT__ROOT_ELEMENT, oldRootElement, rootElement));
+			}
+		}
+		return rootElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXElement basicGetRootElement() {
+		return rootElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRootElement(VEXElement newRootElement) {
+		VEXElement oldRootElement = rootElement;
+		rootElement = newRootElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_DOCUMENT__ROOT_ELEMENT, oldRootElement, rootElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Validator getValidator() {
+		if (validator != null && validator.eIsProxy()) {
+			InternalEObject oldValidator = (InternalEObject)validator;
+			validator = (Validator)eResolveProxy(oldValidator);
+			if (validator != oldValidator) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_DOCUMENT__VALIDATOR, oldValidator, validator));
+			}
+		}
+		return validator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Validator basicGetValidator() {
+		return validator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValidator(Validator newValidator) {
+		Validator oldValidator = validator;
+		validator = newValidator;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_DOCUMENT__VALIDATOR, oldValidator, validator));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPublicID() {
+		return publicID;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPublicID(String newPublicID) {
+		String oldPublicID = publicID;
+		publicID = newPublicID;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_DOCUMENT__PUBLIC_ID, oldPublicID, publicID));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean canInsertFragment(int offset, VEXDocumentFragment fragment) {
+		// 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 boolean canInsertText(int offset) {
+		// 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 Position createPosition(int offset) {
+		// 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 void delete(int startOffset, int endOffset) throws DocumentValidationException {
+		// 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 VEXElement findCommonElement(int offset1, int offset2) {
+		// 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 char getCharacterAt(int offset) {
+		// 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 VEXElement getElementAt(int offset) {
+		// 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 VEXDocumentFragment getFragment(int startOffset, int endOffset) {
+		// 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 EList<String> getNodeNames(int startOffset, int endOffset) {
+		// 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 EList<VEXNode> getNodes(int startOffset, int endOffset) {
+		// 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 String getRawText(int startOffset, int endOffset) {
+		// 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 String getText(int startOffset, int endOffset) {
+		// 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 void insertElement(int offset, VEXElement defaults) throws DocumentValidationException {
+		// 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 void insertFragment(int offset, VEXDocumentFragment fragment) throws DocumentValidationException {
+		// 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 void insertText(int offset, String text) throws DocumentValidationException {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_DOCUMENT__ENCODING:
+				return getEncoding();
+			case DomEMFPackage.VEX_DOCUMENT__LENGTH:
+				return new Integer(getLength());
+			case DomEMFPackage.VEX_DOCUMENT__ROOT_ELEMENT:
+				if (resolve) return getRootElement();
+				return basicGetRootElement();
+			case DomEMFPackage.VEX_DOCUMENT__VALIDATOR:
+				if (resolve) return getValidator();
+				return basicGetValidator();
+			case DomEMFPackage.VEX_DOCUMENT__PUBLIC_ID:
+				return getPublicID();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_DOCUMENT__ENCODING:
+				setEncoding((String)newValue);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT__LENGTH:
+				setLength(((Integer)newValue).intValue());
+				return;
+			case DomEMFPackage.VEX_DOCUMENT__ROOT_ELEMENT:
+				setRootElement((VEXElement)newValue);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT__VALIDATOR:
+				setValidator((Validator)newValue);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT__PUBLIC_ID:
+				setPublicID((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_DOCUMENT__ENCODING:
+				setEncoding(ENCODING_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT__LENGTH:
+				setLength(LENGTH_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT__ROOT_ELEMENT:
+				setRootElement((VEXElement)null);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT__VALIDATOR:
+				setValidator((Validator)null);
+				return;
+			case DomEMFPackage.VEX_DOCUMENT__PUBLIC_ID:
+				setPublicID(PUBLIC_ID_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_DOCUMENT__ENCODING:
+				return ENCODING_EDEFAULT == null ? encoding != null : !ENCODING_EDEFAULT.equals(encoding);
+			case DomEMFPackage.VEX_DOCUMENT__LENGTH:
+				return length != LENGTH_EDEFAULT;
+			case DomEMFPackage.VEX_DOCUMENT__ROOT_ELEMENT:
+				return rootElement != null;
+			case DomEMFPackage.VEX_DOCUMENT__VALIDATOR:
+				return validator != null;
+			case DomEMFPackage.VEX_DOCUMENT__PUBLIC_ID:
+				return PUBLIC_ID_EDEFAULT == null ? publicID != null : !PUBLIC_ID_EDEFAULT.equals(publicID);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (encoding: ");
+		result.append(encoding);
+		result.append(", length: ");
+		result.append(length);
+		result.append(", publicID: ");
+		result.append(publicID);
+		result.append(')');
+		return result.toString();
+	}
+
+} //VEXDocumentImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXElementImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXElementImpl.java
new file mode 100644
index 0000000..6e78da4
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXElementImpl.java
@@ -0,0 +1,659 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import java.util.Collection;
+
+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.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>VEX Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#getAttributeNames <em>Attribute Names</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#getChildElements <em>Child Elements</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#getChildNodes <em>Child Nodes</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#getDocument <em>Document</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#isEmpty <em>Empty</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#getParent <em>Parent</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#getNamespacePrefix <em>Namespace Prefix</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXElementImpl#getNamespaceURI <em>Namespace URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VEXElementImpl extends VEXNodeImpl implements VEXElement {
+	/**
+	 * The cached value of the '{@link #getAttributeNames() <em>Attribute Names</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAttributeNames()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> attributeNames;
+
+	/**
+	 * The cached value of the '{@link #getChildElements() <em>Child Elements</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getChildElements()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<VEXElement> childElements;
+
+	/**
+	 * The cached value of the '{@link #getChildNodes() <em>Child Nodes</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getChildNodes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<VEXNode> childNodes;
+
+	/**
+	 * The cached value of the '{@link #getDocument() <em>Document</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDocument()
+	 * @generated
+	 * @ordered
+	 */
+	protected VEXDocument document;
+
+	/**
+	 * 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 #isEmpty() <em>Empty</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEmpty()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EMPTY_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isEmpty() <em>Empty</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEmpty()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean empty = EMPTY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getParent() <em>Parent</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParent()
+	 * @generated
+	 * @ordered
+	 */
+	protected VEXElement parent;
+
+	/**
+	 * The default value of the '{@link #getNamespacePrefix() <em>Namespace Prefix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespacePrefix()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAMESPACE_PREFIX_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNamespacePrefix() <em>Namespace Prefix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespacePrefix()
+	 * @generated
+	 * @ordered
+	 */
+	protected String namespacePrefix = NAMESPACE_PREFIX_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 VEXElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.VEX_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<String> getAttributeNames() {
+		if (attributeNames == null) {
+			attributeNames = new EDataTypeUniqueEList<String>(String.class, this, DomEMFPackage.VEX_ELEMENT__ATTRIBUTE_NAMES);
+		}
+		return attributeNames;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<VEXElement> getChildElements() {
+		if (childElements == null) {
+			childElements = new EObjectResolvingEList<VEXElement>(VEXElement.class, this, DomEMFPackage.VEX_ELEMENT__CHILD_ELEMENTS);
+		}
+		return childElements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<VEXNode> getChildNodes() {
+		if (childNodes == null) {
+			childNodes = new EObjectResolvingEList<VEXNode>(VEXNode.class, this, DomEMFPackage.VEX_ELEMENT__CHILD_NODES);
+		}
+		return childNodes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXDocument getDocument() {
+		if (document != null && document.eIsProxy()) {
+			InternalEObject oldDocument = (InternalEObject)document;
+			document = (VEXDocument)eResolveProxy(oldDocument);
+			if (document != oldDocument) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_ELEMENT__DOCUMENT, oldDocument, document));
+			}
+		}
+		return document;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXDocument basicGetDocument() {
+		return document;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDocument(VEXDocument newDocument) {
+		VEXDocument oldDocument = document;
+		document = newDocument;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_ELEMENT__DOCUMENT, oldDocument, document));
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.VEX_ELEMENT__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEmpty() {
+		return empty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEmpty(boolean newEmpty) {
+		boolean oldEmpty = empty;
+		empty = newEmpty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_ELEMENT__EMPTY, oldEmpty, empty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXElement getParent() {
+		if (parent != null && parent.eIsProxy()) {
+			InternalEObject oldParent = (InternalEObject)parent;
+			parent = (VEXElement)eResolveProxy(oldParent);
+			if (parent != oldParent) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_ELEMENT__PARENT, oldParent, parent));
+			}
+		}
+		return parent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXElement basicGetParent() {
+		return parent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParent(VEXElement newParent) {
+		VEXElement oldParent = parent;
+		parent = newParent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_ELEMENT__PARENT, oldParent, parent));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNamespacePrefix() {
+		return namespacePrefix;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNamespacePrefix(String newNamespacePrefix) {
+		String oldNamespacePrefix = namespacePrefix;
+		namespacePrefix = newNamespacePrefix;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_ELEMENT__NAMESPACE_PREFIX, oldNamespacePrefix, namespacePrefix));
+	}
+
+	/**
+	 * <!-- 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, DomEMFPackage.VEX_ELEMENT__NAMESPACE_URI, oldNamespaceURI, namespaceURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addChild(VEXElement child) {
+		// 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 clone() {
+		// 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 String getAttribute(String name) {
+		// 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 void removeAttribute(String name) throws DocumentValidationException {
+		// 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 void setAttribute(String name, String value) throws DocumentValidationException {
+		// 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 void setContent(Content content, int offset, int i) {
+		// 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 void insertChild(int index, VEXElement child) {
+		// 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 void setNamespace(String prefix, String namespaceURI) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_ELEMENT__ATTRIBUTE_NAMES:
+				return getAttributeNames();
+			case DomEMFPackage.VEX_ELEMENT__CHILD_ELEMENTS:
+				return getChildElements();
+			case DomEMFPackage.VEX_ELEMENT__CHILD_NODES:
+				return getChildNodes();
+			case DomEMFPackage.VEX_ELEMENT__DOCUMENT:
+				if (resolve) return getDocument();
+				return basicGetDocument();
+			case DomEMFPackage.VEX_ELEMENT__NAME:
+				return getName();
+			case DomEMFPackage.VEX_ELEMENT__EMPTY:
+				return isEmpty() ? Boolean.TRUE : Boolean.FALSE;
+			case DomEMFPackage.VEX_ELEMENT__PARENT:
+				if (resolve) return getParent();
+				return basicGetParent();
+			case DomEMFPackage.VEX_ELEMENT__NAMESPACE_PREFIX:
+				return getNamespacePrefix();
+			case DomEMFPackage.VEX_ELEMENT__NAMESPACE_URI:
+				return getNamespaceURI();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_ELEMENT__ATTRIBUTE_NAMES:
+				getAttributeNames().clear();
+				getAttributeNames().addAll((Collection<? extends String>)newValue);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__CHILD_ELEMENTS:
+				getChildElements().clear();
+				getChildElements().addAll((Collection<? extends VEXElement>)newValue);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__CHILD_NODES:
+				getChildNodes().clear();
+				getChildNodes().addAll((Collection<? extends VEXNode>)newValue);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__DOCUMENT:
+				setDocument((VEXDocument)newValue);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__NAME:
+				setName((String)newValue);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__EMPTY:
+				setEmpty(((Boolean)newValue).booleanValue());
+				return;
+			case DomEMFPackage.VEX_ELEMENT__PARENT:
+				setParent((VEXElement)newValue);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__NAMESPACE_PREFIX:
+				setNamespacePrefix((String)newValue);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__NAMESPACE_URI:
+				setNamespaceURI((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_ELEMENT__ATTRIBUTE_NAMES:
+				getAttributeNames().clear();
+				return;
+			case DomEMFPackage.VEX_ELEMENT__CHILD_ELEMENTS:
+				getChildElements().clear();
+				return;
+			case DomEMFPackage.VEX_ELEMENT__CHILD_NODES:
+				getChildNodes().clear();
+				return;
+			case DomEMFPackage.VEX_ELEMENT__DOCUMENT:
+				setDocument((VEXDocument)null);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__EMPTY:
+				setEmpty(EMPTY_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__PARENT:
+				setParent((VEXElement)null);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__NAMESPACE_PREFIX:
+				setNamespacePrefix(NAMESPACE_PREFIX_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_ELEMENT__NAMESPACE_URI:
+				setNamespaceURI(NAMESPACE_URI_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_ELEMENT__ATTRIBUTE_NAMES:
+				return attributeNames != null && !attributeNames.isEmpty();
+			case DomEMFPackage.VEX_ELEMENT__CHILD_ELEMENTS:
+				return childElements != null && !childElements.isEmpty();
+			case DomEMFPackage.VEX_ELEMENT__CHILD_NODES:
+				return childNodes != null && !childNodes.isEmpty();
+			case DomEMFPackage.VEX_ELEMENT__DOCUMENT:
+				return document != null;
+			case DomEMFPackage.VEX_ELEMENT__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case DomEMFPackage.VEX_ELEMENT__EMPTY:
+				return empty != EMPTY_EDEFAULT;
+			case DomEMFPackage.VEX_ELEMENT__PARENT:
+				return parent != null;
+			case DomEMFPackage.VEX_ELEMENT__NAMESPACE_PREFIX:
+				return NAMESPACE_PREFIX_EDEFAULT == null ? namespacePrefix != null : !NAMESPACE_PREFIX_EDEFAULT.equals(namespacePrefix);
+			case DomEMFPackage.VEX_ELEMENT__NAMESPACE_URI:
+				return NAMESPACE_URI_EDEFAULT == null ? namespaceURI != null : !NAMESPACE_URI_EDEFAULT.equals(namespaceURI);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (attributeNames: ");
+		result.append(attributeNames);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", empty: ");
+		result.append(empty);
+		result.append(", namespacePrefix: ");
+		result.append(namespacePrefix);
+		result.append(", namespaceURI: ");
+		result.append(namespaceURI);
+		result.append(')');
+		return result.toString();
+	}
+
+} //VEXElementImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXNodeImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXNodeImpl.java
new file mode 100644
index 0000000..abdc948
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXNodeImpl.java
@@ -0,0 +1,463 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>VEX Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl#getEndOffset <em>End Offset</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl#getEndPosition <em>End Position</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl#getStartOffset <em>Start Offset</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl#getStartPosition <em>Start Position</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXNodeImpl#getText <em>Text</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VEXNodeImpl extends EObjectImpl implements VEXNode {
+	/**
+	 * The cached value of the '{@link #getContent() <em>Content</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected Content content;
+
+	/**
+	 * The default value of the '{@link #getEndOffset() <em>End Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEndOffset()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int END_OFFSET_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getEndOffset() <em>End Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEndOffset()
+	 * @generated
+	 * @ordered
+	 */
+	protected int endOffset = END_OFFSET_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getEndPosition() <em>End Position</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEndPosition()
+	 * @generated
+	 * @ordered
+	 */
+	protected Position endPosition;
+
+	/**
+	 * The default value of the '{@link #getStartOffset() <em>Start Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStartOffset()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int START_OFFSET_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getStartOffset() <em>Start Offset</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStartOffset()
+	 * @generated
+	 * @ordered
+	 */
+	protected int startOffset = START_OFFSET_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getStartPosition() <em>Start Position</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStartPosition()
+	 * @generated
+	 * @ordered
+	 */
+	protected Position startPosition;
+
+	/**
+	 * The default value of the '{@link #getText() <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getText()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TEXT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getText() <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getText()
+	 * @generated
+	 * @ordered
+	 */
+	protected String text = TEXT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXNodeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.VEX_NODE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Content getContent() {
+		if (content != null && content.eIsProxy()) {
+			InternalEObject oldContent = (InternalEObject)content;
+			content = (Content)eResolveProxy(oldContent);
+			if (content != oldContent) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_NODE__CONTENT, oldContent, content));
+			}
+		}
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Content basicGetContent() {
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContent(Content newContent) {
+		Content oldContent = content;
+		content = newContent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_NODE__CONTENT, oldContent, content));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getEndOffset() {
+		return endOffset;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEndOffset(int newEndOffset) {
+		int oldEndOffset = endOffset;
+		endOffset = newEndOffset;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_NODE__END_OFFSET, oldEndOffset, endOffset));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position getEndPosition() {
+		if (endPosition != null && endPosition.eIsProxy()) {
+			InternalEObject oldEndPosition = (InternalEObject)endPosition;
+			endPosition = (Position)eResolveProxy(oldEndPosition);
+			if (endPosition != oldEndPosition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_NODE__END_POSITION, oldEndPosition, endPosition));
+			}
+		}
+		return endPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position basicGetEndPosition() {
+		return endPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEndPosition(Position newEndPosition) {
+		Position oldEndPosition = endPosition;
+		endPosition = newEndPosition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_NODE__END_POSITION, oldEndPosition, endPosition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getStartOffset() {
+		return startOffset;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStartOffset(int newStartOffset) {
+		int oldStartOffset = startOffset;
+		startOffset = newStartOffset;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_NODE__START_OFFSET, oldStartOffset, startOffset));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position getStartPosition() {
+		if (startPosition != null && startPosition.eIsProxy()) {
+			InternalEObject oldStartPosition = (InternalEObject)startPosition;
+			startPosition = (Position)eResolveProxy(oldStartPosition);
+			if (startPosition != oldStartPosition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomEMFPackage.VEX_NODE__START_POSITION, oldStartPosition, startPosition));
+			}
+		}
+		return startPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position basicGetStartPosition() {
+		return startPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStartPosition(Position newStartPosition) {
+		Position oldStartPosition = startPosition;
+		startPosition = newStartPosition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_NODE__START_POSITION, oldStartPosition, startPosition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText() {
+		return text;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setText(String newText) {
+		String oldText = text;
+		text = newText;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VEX_NODE__TEXT, oldText, text));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_NODE__CONTENT:
+				if (resolve) return getContent();
+				return basicGetContent();
+			case DomEMFPackage.VEX_NODE__END_OFFSET:
+				return new Integer(getEndOffset());
+			case DomEMFPackage.VEX_NODE__END_POSITION:
+				if (resolve) return getEndPosition();
+				return basicGetEndPosition();
+			case DomEMFPackage.VEX_NODE__START_OFFSET:
+				return new Integer(getStartOffset());
+			case DomEMFPackage.VEX_NODE__START_POSITION:
+				if (resolve) return getStartPosition();
+				return basicGetStartPosition();
+			case DomEMFPackage.VEX_NODE__TEXT:
+				return getText();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_NODE__CONTENT:
+				setContent((Content)newValue);
+				return;
+			case DomEMFPackage.VEX_NODE__END_OFFSET:
+				setEndOffset(((Integer)newValue).intValue());
+				return;
+			case DomEMFPackage.VEX_NODE__END_POSITION:
+				setEndPosition((Position)newValue);
+				return;
+			case DomEMFPackage.VEX_NODE__START_OFFSET:
+				setStartOffset(((Integer)newValue).intValue());
+				return;
+			case DomEMFPackage.VEX_NODE__START_POSITION:
+				setStartPosition((Position)newValue);
+				return;
+			case DomEMFPackage.VEX_NODE__TEXT:
+				setText((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_NODE__CONTENT:
+				setContent((Content)null);
+				return;
+			case DomEMFPackage.VEX_NODE__END_OFFSET:
+				setEndOffset(END_OFFSET_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_NODE__END_POSITION:
+				setEndPosition((Position)null);
+				return;
+			case DomEMFPackage.VEX_NODE__START_OFFSET:
+				setStartOffset(START_OFFSET_EDEFAULT);
+				return;
+			case DomEMFPackage.VEX_NODE__START_POSITION:
+				setStartPosition((Position)null);
+				return;
+			case DomEMFPackage.VEX_NODE__TEXT:
+				setText(TEXT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_NODE__CONTENT:
+				return content != null;
+			case DomEMFPackage.VEX_NODE__END_OFFSET:
+				return endOffset != END_OFFSET_EDEFAULT;
+			case DomEMFPackage.VEX_NODE__END_POSITION:
+				return endPosition != null;
+			case DomEMFPackage.VEX_NODE__START_OFFSET:
+				return startOffset != START_OFFSET_EDEFAULT;
+			case DomEMFPackage.VEX_NODE__START_POSITION:
+				return startPosition != null;
+			case DomEMFPackage.VEX_NODE__TEXT:
+				return TEXT_EDEFAULT == null ? text != null : !TEXT_EDEFAULT.equals(text);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (endOffset: ");
+		result.append(endOffset);
+		result.append(", startOffset: ");
+		result.append(startOffset);
+		result.append(", text: ");
+		result.append(text);
+		result.append(')');
+		return result.toString();
+	}
+
+} //VEXNodeImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXProcessingInstructionImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXProcessingInstructionImpl.java
new file mode 100644
index 0000000..63ea703
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/VEXProcessingInstructionImpl.java
@@ -0,0 +1,163 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>VEX Processing Instruction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.VEXProcessingInstructionImpl#getAttributes <em>Attributes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VEXProcessingInstructionImpl extends VEXNodeImpl implements VEXProcessingInstruction {
+	/**
+	 * The cached value of the '{@link #getAttributes() <em>Attributes</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<VEXAttribute> attributes;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXProcessingInstructionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.VEX_PROCESSING_INSTRUCTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<VEXAttribute> getAttributes() {
+		if (attributes == null) {
+			attributes = new EObjectResolvingEList<VEXAttribute>(VEXAttribute.class, this, DomEMFPackage.VEX_PROCESSING_INSTRUCTION__ATTRIBUTES);
+		}
+		return attributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean removeAttribute(String attributeName) {
+		// 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 void setAttribute(String attributeName, String value) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_PROCESSING_INSTRUCTION__ATTRIBUTES:
+				return getAttributes();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_PROCESSING_INSTRUCTION__ATTRIBUTES:
+				getAttributes().clear();
+				getAttributes().addAll((Collection<? extends VEXAttribute>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_PROCESSING_INSTRUCTION__ATTRIBUTES:
+				getAttributes().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VEX_PROCESSING_INSTRUCTION__ATTRIBUTES:
+				return attributes != null && !attributes.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //VEXProcessingInstructionImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/ValidatorImpl.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/ValidatorImpl.java
new file mode 100644
index 0000000..2dad9ec
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/impl/ValidatorImpl.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl;
+
+import java.util.Set;
+
+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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator;
+
+import org.eclipse.wst.xml.vex.core.internal.validator.AttributeDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Validator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.impl.ValidatorImpl#getValidRootElements <em>Valid Root Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValidatorImpl extends EObjectImpl implements Validator {
+	/**
+	 * The cached value of the '{@link #getValidRootElements() <em>Valid Root Elements</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidRootElements()
+	 * @generated
+	 * @ordered
+	 */
+	protected Set validRootElements;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ValidatorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DomEMFPackage.Literals.VALIDATOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Set getValidRootElements() {
+		return validRootElements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValidRootElements(Set newValidRootElements) {
+		Set oldValidRootElements = validRootElements;
+		validRootElements = newValidRootElements;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DomEMFPackage.VALIDATOR__VALID_ROOT_ELEMENTS, oldValidRootElements, validRootElements));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AttributeDefinition getAttributeDefinition(String element, String attribute) {
+		// 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 EList<AttributeDefinition> getAttributeDefinitions(String element) {
+		// 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 Set<String> getValidItems(String element) {
+		// 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 boolean isValidSequence(String element, EList<String> nodes, boolean partial) {
+		// 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 boolean isValidSequence(String element, EList<String> seq1, EList<String> seq2, EList<String> seq3, boolean partial) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DomEMFPackage.VALIDATOR__VALID_ROOT_ELEMENTS:
+				return getValidRootElements();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DomEMFPackage.VALIDATOR__VALID_ROOT_ELEMENTS:
+				setValidRootElements((Set)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VALIDATOR__VALID_ROOT_ELEMENTS:
+				setValidRootElements((Set)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DomEMFPackage.VALIDATOR__VALID_ROOT_ELEMENTS:
+				return validRootElements != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (validRootElements: ");
+		result.append(validRootElements);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ValidatorImpl
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/util/DomEMFAdapterFactory.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/util/DomEMFAdapterFactory.java
new file mode 100644
index 0000000..ce78fae
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/util/DomEMFAdapterFactory.java
@@ -0,0 +1,312 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.util;
+
+import java.io.Serializable;
+
+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;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.*;
+
+/**
+ * <!-- 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage
+ * @generated
+ */
+public class DomEMFAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DomEMFPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DomEMFAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = DomEMFPackage.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
+	 */
+	@Override
+	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 DomEMFSwitch<Adapter> modelSwitch =
+		new DomEMFSwitch<Adapter>() {
+			@Override
+			public Adapter caseContent(Content object) {
+				return createContentAdapter();
+			}
+			@Override
+			public Adapter casePosition(Position object) {
+				return createPositionAdapter();
+			}
+			@Override
+			public Adapter caseVEXAttribute(VEXAttribute object) {
+				return createVEXAttributeAdapter();
+			}
+			@Override
+			public Adapter caseVEXComment(VEXComment object) {
+				return createVEXCommentAdapter();
+			}
+			@Override
+			public Adapter caseVEXDocument(VEXDocument object) {
+				return createVEXDocumentAdapter();
+			}
+			@Override
+			public Adapter caseVEXDocumentFragment(VEXDocumentFragment object) {
+				return createVEXDocumentFragmentAdapter();
+			}
+			@Override
+			public Adapter caseVEXElement(VEXElement object) {
+				return createVEXElementAdapter();
+			}
+			@Override
+			public Adapter caseVEXNode(VEXNode object) {
+				return createVEXNodeAdapter();
+			}
+			@Override
+			public Adapter caseVEXProcessingInstruction(VEXProcessingInstruction object) {
+				return createVEXProcessingInstructionAdapter();
+			}
+			@Override
+			public Adapter caseValidator(Validator object) {
+				return createValidatorAdapter();
+			}
+			@Override
+			public Adapter caseSerializable(Serializable object) {
+				return createSerializableAdapter();
+			}
+			@Override
+			public Adapter 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
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content <em>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.wst.xml.vex.core.internal.provisional.dom.I.Content
+	 * @generated
+	 */
+	public Adapter createContentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position <em>Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position
+	 * @generated
+	 */
+	public Adapter createPositionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute <em>VEX Attribute</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute
+	 * @generated
+	 */
+	public Adapter createVEXAttributeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment <em>VEX 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.wst.xml.vex.core.internal.provisional.dom.I.VEXComment
+	 * @generated
+	 */
+	public Adapter createVEXCommentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument <em>VEX 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.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument
+	 * @generated
+	 */
+	public Adapter createVEXDocumentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment <em>VEX Document Fragment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment
+	 * @generated
+	 */
+	public Adapter createVEXDocumentFragmentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement <em>VEX 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.wst.xml.vex.core.internal.provisional.dom.I.VEXElement
+	 * @generated
+	 */
+	public Adapter createVEXElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode <em>VEX Node</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode
+	 * @generated
+	 */
+	public Adapter createVEXNodeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction <em>VEX Processing Instruction</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction
+	 * @generated
+	 */
+	public Adapter createVEXProcessingInstructionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator <em>Validator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator
+	 * @generated
+	 */
+	public Adapter createValidatorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link java.io.Serializable <em>Serializable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see java.io.Serializable
+	 * @generated
+	 */
+	public Adapter createSerializableAdapter() {
+		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;
+	}
+
+} //DomEMFAdapterFactory
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/util/DomEMFSwitch.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/util/DomEMFSwitch.java
new file mode 100644
index 0000000..d0af1c4
--- /dev/null
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src-emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/util/DomEMFSwitch.java
@@ -0,0 +1,347 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.util;
+
+import java.io.Serializable;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.*;
+
+/**
+ * <!-- 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.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage
+ * @generated
+ */
+public class DomEMFSwitch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DomEMFPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DomEMFSwitch() {
+		if (modelPackage == null) {
+			modelPackage = DomEMFPackage.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 T 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 T doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List<EClass> eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch(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 T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case DomEMFPackage.CONTENT: {
+				Content content = (Content)theEObject;
+				T result = caseContent(content);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.POSITION: {
+				Position position = (Position)theEObject;
+				T result = casePosition(position);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.VEX_ATTRIBUTE: {
+				VEXAttribute vexAttribute = (VEXAttribute)theEObject;
+				T result = caseVEXAttribute(vexAttribute);
+				if (result == null) result = caseVEXNode(vexAttribute);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.VEX_COMMENT: {
+				VEXComment vexComment = (VEXComment)theEObject;
+				T result = caseVEXComment(vexComment);
+				if (result == null) result = caseVEXNode(vexComment);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.VEX_DOCUMENT: {
+				VEXDocument vexDocument = (VEXDocument)theEObject;
+				T result = caseVEXDocument(vexDocument);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.VEX_DOCUMENT_FRAGMENT: {
+				VEXDocumentFragment vexDocumentFragment = (VEXDocumentFragment)theEObject;
+				T result = caseVEXDocumentFragment(vexDocumentFragment);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.VEX_ELEMENT: {
+				VEXElement vexElement = (VEXElement)theEObject;
+				T result = caseVEXElement(vexElement);
+				if (result == null) result = caseVEXNode(vexElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.VEX_NODE: {
+				VEXNode vexNode = (VEXNode)theEObject;
+				T result = caseVEXNode(vexNode);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.VEX_PROCESSING_INSTRUCTION: {
+				VEXProcessingInstruction vexProcessingInstruction = (VEXProcessingInstruction)theEObject;
+				T result = caseVEXProcessingInstruction(vexProcessingInstruction);
+				if (result == null) result = caseVEXNode(vexProcessingInstruction);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DomEMFPackage.VALIDATOR: {
+				Validator validator = (Validator)theEObject;
+				T result = caseValidator(validator);
+				if (result == null) result = caseSerializable(validator);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>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>Content</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseContent(Content object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Position</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Position</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePosition(Position object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>VEX Attribute</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>VEX Attribute</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseVEXAttribute(VEXAttribute object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>VEX 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>VEX Comment</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseVEXComment(VEXComment object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>VEX 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>VEX Document</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseVEXDocument(VEXDocument object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>VEX Document Fragment</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>VEX Document Fragment</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseVEXDocumentFragment(VEXDocumentFragment object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>VEX 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>VEX Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseVEXElement(VEXElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>VEX Node</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>VEX Node</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseVEXNode(VEXNode object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>VEX Processing Instruction</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>VEX Processing Instruction</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseVEXProcessingInstruction(VEXProcessingInstruction object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Validator</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Validator</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseValidator(Validator object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Serializable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Serializable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSerializable(Serializable 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 T defaultCase(EObject object) {
+		return null;
+	}
+
+} //DomEMFSwitch
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/.classpath b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/.classpath
index 64c5e31..c135c9c 100644
--- a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/.classpath
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/.classpath
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
+	<classpathentry kind="src" path="src_emf"/>
 	<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"/>
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/META-INF/MANIFEST.MF b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/META-INF/MANIFEST.MF
index 5d73c1a..67a5ec1 100644
--- a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/META-INF/MANIFEST.MF
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/META-INF/MANIFEST.MF
@@ -1,20 +1,23 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: VEX Core Tests
-Bundle-SymbolicName: org.eclipse.wst.xml.vex.core.tests
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.wst.xml.vex.core.tests;singleton:=true
 Bundle-Version: 0.5.0.qualifier
 Bundle-Activator: org.eclipse.wst.xml.vex.core.tests.VEXCoreTestPlugin
-Bundle-Vendor: Eclipse.org
+Bundle-Vendor: %providerName
 Require-Bundle: org.apache.xerces;bundle-version="2.9.0";visibility:=reexport,
  org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.wst.xml.vex.core;bundle-version="0.5.0",
  org.junit;bundle-version="3.8.1",
  org.eclipse.core.resources;bundle-version="[3.4.100,4.0.0)",
- org.w3c.css.sac;bundle-version="[1.3.0,2.0.0)"
+ org.w3c.css.sac;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecore;bundle-version="2.4.1",
+ org.eclipse.emf.ecore.xmi;bundle-version="2.4.1"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.wst.xml.vex.core.internal.css;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.dom;x-internal:=true,
  org.eclipse.wst.xml.vex.core.internal.layout;x-internal:=true,
+ org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;x-internal:=true,
  org.eclipse.wst.xml.vex.core.tests
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/build.properties b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/build.properties
index 577b7ce..4662209 100644
--- a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/build.properties
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/build.properties
@@ -1,6 +1,8 @@
-source.. = src/
+source.. = src/,\
+           src_emf/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
                projectFiles/,\
-               bin/
+               bin/,\
+               plugin.properties
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/plugin.properties b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/plugin.properties
new file mode 100644
index 0000000..0a347eb
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = VEX Core Tests
+providerName = Eclipse.org
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/ContentTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/ContentTest.java
new file mode 100644
index 0000000..48b6b38
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/ContentTest.java
@@ -0,0 +1,159 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following operations are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#createPosition(int) <em>Create Position</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#insertString(int, java.lang.String) <em>Insert String</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#remove(int, int) <em>Remove</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#getString(int, int) <em>Get String</em>}</li>
+ * </ul>
+ * </p>
+ * @generated
+ */
+public class ContentTest extends TestCase {
+
+	/**
+	 * The fixture for this Content test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Content fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ContentTest.class);
+	}
+
+	/**
+	 * Constructs a new Content test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ContentTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Content test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Content fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Content test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Content getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createContent());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#createPosition(int) <em>Create Position</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#createPosition(int)
+	 * @generated
+	 */
+	public void testCreatePosition__int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#insertString(int, java.lang.String) <em>Insert String</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#insertString(int, java.lang.String)
+	 * @generated
+	 */
+	public void testInsertString__int_String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#remove(int, int) <em>Remove</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#remove(int, int)
+	 * @generated
+	 */
+	public void testRemove__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#getString(int, int) <em>Get String</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content#getString(int, int)
+	 * @generated
+	 */
+	public void testGetString__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+} //ContentTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/DomEMFExample.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/DomEMFExample.java
new file mode 100644
index 0000000..a60e436
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/DomEMFExample.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.util.Diagnostician;
+
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFPackage;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content;
+
+/**
+ * <!-- begin-user-doc -->
+ * A sample utility for the '<em><b>dom</b></em>' package.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DomEMFExample {
+	/**
+	 * <!-- begin-user-doc -->
+	 * Load all the argument file paths or URIs as instances of the model.
+	 * <!-- end-user-doc -->
+	 * @param args the file paths or URIs.
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		// Create a resource set to hold the resources.
+		//
+		ResourceSet resourceSet = new ResourceSetImpl();
+		
+		// Register the appropriate resource factory to handle all file extensions.
+		//
+		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
+			(Resource.Factory.Registry.DEFAULT_EXTENSION, 
+			 new XMIResourceFactoryImpl());
+
+		// Register the package to ensure it is available during loading.
+		//
+		resourceSet.getPackageRegistry().put
+			(DomEMFPackage.eNS_URI, 
+			 DomEMFPackage.eINSTANCE);
+        
+		// If there are no arguments, emit an appropriate usage message.
+		//
+		if (args.length == 0) {
+			System.out.println("Enter a list of file paths or URIs that have content like this:");
+			try {
+				Resource resource = resourceSet.createResource(URI.createURI("http:///My.domemf"));
+				Content root = DomEMFFactory.eINSTANCE.createContent();
+				resource.getContents().add(root);
+				resource.save(System.out, null);
+			}
+			catch (IOException exception) {
+				exception.printStackTrace();
+			}
+		}
+		else {
+			// Iterate over all the arguments.
+			//
+			for (int i = 0; i < args.length; ++i) {
+				// Construct the URI for the instance file.
+				// The argument is treated as a file path only if it denotes an existing file.
+				// Otherwise, it's directly treated as a URL.
+				//
+				File file = new File(args[i]);
+				URI uri = file.isFile() ? URI.createFileURI(file.getAbsolutePath()): URI.createURI(args[0]);
+
+				try {
+					// Demand load resource for this file.
+					//
+					Resource resource = resourceSet.getResource(uri, true);
+					System.out.println("Loaded " + uri);
+
+					// Validate the contents of the loaded resource.
+					//
+					for (EObject eObject : resource.getContents()) {
+						Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject);
+						if (diagnostic.getSeverity() != Diagnostic.OK) {
+							printDiagnostic(diagnostic, "");
+						}
+					}
+				}
+				catch (RuntimeException exception) {
+					System.out.println("Problem loading " + uri);
+					exception.printStackTrace();
+				}
+			}
+		}
+	}
+	
+	/**
+	 * <!-- begin-user-doc -->
+	 * Prints diagnostics with indentation.
+	 * <!-- end-user-doc -->
+	 * @param diagnostic the diagnostic to print.
+	 * @param indent the indentation for printing.
+	 * @generated
+	 */
+	protected static void printDiagnostic(Diagnostic diagnostic, String indent) {
+		System.out.print(indent);
+		System.out.println(diagnostic.getMessage());
+		for (Diagnostic child : diagnostic.getChildren()) {
+			printDiagnostic(child, indent + "  ");
+		}
+	}
+
+} //DomEMFExample
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/DomEMFTests.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/DomEMFTests.java
new file mode 100644
index 0000000..5d73f78
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/DomEMFTests.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ *    David Carver (STAR)  - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test suite for the '<em><b>dom</b></em>' package.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DomEMFTests extends TestSuite {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(suite());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static Test suite() {
+		TestSuite suite = new DomEMFTests("dom Tests");
+		suite.addTestSuite(ContentTest.class);
+		suite.addTestSuite(VEXAttributeTest.class);
+		suite.addTestSuite(VEXDocumentTest.class);
+		suite.addTestSuite(VEXElementTest.class);
+		suite.addTestSuite(VEXProcessingInstructionTest.class);
+		suite.addTestSuite(ValidatorTest.class);
+		return suite;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DomEMFTests(String name) {
+		super(name);
+	}
+
+} //DomEMFTests
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/PositionTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/PositionTest.java
new file mode 100644
index 0000000..5f747b9
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/PositionTest.java
@@ -0,0 +1,88 @@
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Position;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Position</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PositionTest extends TestCase {
+
+	/**
+	 * The fixture for this Position test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Position fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(PositionTest.class);
+	}
+
+	/**
+	 * Constructs a new Position test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PositionTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Position test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Position fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Position test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Position getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createPosition());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //PositionTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/SerializableTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/SerializableTest.java
new file mode 100644
index 0000000..419397a
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/SerializableTest.java
@@ -0,0 +1,59 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SerializableTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import java.io.Serializable;
+
+import junit.framework.TestCase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Serializable</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class SerializableTest extends TestCase {
+
+	/**
+	 * The fixture for this Serializable test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Serializable fixture = null;
+
+	/**
+	 * Constructs a new Serializable test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SerializableTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Serializable test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Serializable fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Serializable test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Serializable getFixture() {
+		return fixture;
+	}
+
+} //SerializableTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXAttributeTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXAttributeTest.java
new file mode 100644
index 0000000..02cee34
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXAttributeTest.java
@@ -0,0 +1,94 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VEXAttributeTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>VEX Attribute</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following operations are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#setNamespace(java.lang.String, java.lang.String) <em>Set Namespace</em>}</li>
+ * </ul>
+ * </p>
+ * @generated
+ */
+public class VEXAttributeTest extends VEXNodeTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(VEXAttributeTest.class);
+	}
+
+	/**
+	 * Constructs a new VEX Attribute test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXAttributeTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this VEX Attribute test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected VEXAttribute getFixture() {
+		return (VEXAttribute)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createVEXAttribute());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#setNamespace(java.lang.String, java.lang.String) <em>Set Namespace</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXAttribute#setNamespace(java.lang.String, java.lang.String)
+	 * @generated
+	 */
+	public void testSetNamespace__String_String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+} //VEXAttributeTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXCommentTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXCommentTest.java
new file mode 100644
index 0000000..8a5834a
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXCommentTest.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VEXCommentTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXComment;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>VEX Comment</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VEXCommentTest extends VEXNodeTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(VEXCommentTest.class);
+	}
+
+	/**
+	 * Constructs a new VEX Comment test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXCommentTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this VEX Comment test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected VEXComment getFixture() {
+		return (VEXComment)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createVEXComment());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //VEXCommentTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXDocumentFragmentTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXDocumentFragmentTest.java
new file mode 100644
index 0000000..a277eb3
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXDocumentFragmentTest.java
@@ -0,0 +1,94 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VEXDocumentFragmentTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>VEX Document Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VEXDocumentFragmentTest extends TestCase {
+
+	/**
+	 * The fixture for this VEX Document Fragment test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXDocumentFragment fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(VEXDocumentFragmentTest.class);
+	}
+
+	/**
+	 * Constructs a new VEX Document Fragment test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXDocumentFragmentTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this VEX Document Fragment test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(VEXDocumentFragment fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this VEX Document Fragment test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXDocumentFragment getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createVEXDocumentFragment());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //VEXDocumentFragmentTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXDocumentTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXDocumentTest.java
new file mode 100644
index 0000000..a7699a5
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXDocumentTest.java
@@ -0,0 +1,309 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VEXDocumentTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>VEX Document</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following operations are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#canInsertFragment(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment) <em>Can Insert Fragment</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#canInsertText(int) <em>Can Insert Text</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#createPosition(int) <em>Create Position</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#delete(int, int) <em>Delete</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#findCommonElement(int, int) <em>Find Common Element</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getCharacterAt(int) <em>Get Character At</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getElementAt(int) <em>Get Element At</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getFragment(int, int) <em>Get Fragment</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getNodeNames(int, int) <em>Get Node Names</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getNodes(int, int) <em>Get Nodes</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getRawText(int, int) <em>Get Raw Text</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getText(int, int) <em>Get Text</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertElement(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement) <em>Insert Element</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertFragment(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment) <em>Insert Fragment</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertText(int, java.lang.String) <em>Insert Text</em>}</li>
+ * </ul>
+ * </p>
+ * @generated
+ */
+public class VEXDocumentTest extends TestCase {
+
+	/**
+	 * The fixture for this VEX Document test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXDocument fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(VEXDocumentTest.class);
+	}
+
+	/**
+	 * Constructs a new VEX Document test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXDocumentTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this VEX Document test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(VEXDocument fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this VEX Document test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXDocument getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createVEXDocument());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#canInsertFragment(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment) <em>Can Insert Fragment</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#canInsertFragment(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment)
+	 * @generated
+	 */
+	public void testCanInsertFragment__int_VEXDocumentFragment() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#canInsertText(int) <em>Can Insert Text</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#canInsertText(int)
+	 * @generated
+	 */
+	public void testCanInsertText__int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#createPosition(int) <em>Create Position</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#createPosition(int)
+	 * @generated
+	 */
+	public void testCreatePosition__int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#delete(int, int) <em>Delete</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#delete(int, int)
+	 * @generated
+	 */
+	public void testDelete__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#findCommonElement(int, int) <em>Find Common Element</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#findCommonElement(int, int)
+	 * @generated
+	 */
+	public void testFindCommonElement__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getCharacterAt(int) <em>Get Character At</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getCharacterAt(int)
+	 * @generated
+	 */
+	public void testGetCharacterAt__int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getElementAt(int) <em>Get Element At</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getElementAt(int)
+	 * @generated
+	 */
+	public void testGetElementAt__int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getFragment(int, int) <em>Get Fragment</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getFragment(int, int)
+	 * @generated
+	 */
+	public void testGetFragment__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getNodeNames(int, int) <em>Get Node Names</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getNodeNames(int, int)
+	 * @generated
+	 */
+	public void testGetNodeNames__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getNodes(int, int) <em>Get Nodes</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getNodes(int, int)
+	 * @generated
+	 */
+	public void testGetNodes__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getRawText(int, int) <em>Get Raw Text</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getRawText(int, int)
+	 * @generated
+	 */
+	public void testGetRawText__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getText(int, int) <em>Get Text</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#getText(int, int)
+	 * @generated
+	 */
+	public void testGetText__int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertElement(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement) <em>Insert Element</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertElement(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement)
+	 * @generated
+	 */
+	public void testInsertElement__int_VEXElement() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertFragment(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment) <em>Insert Fragment</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertFragment(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocumentFragment)
+	 * @generated
+	 */
+	public void testInsertFragment__int_VEXDocumentFragment() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertText(int, java.lang.String) <em>Insert Text</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXDocument#insertText(int, java.lang.String)
+	 * @generated
+	 */
+	public void testInsertText__int_String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+} //VEXDocumentTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXElementTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXElementTest.java
new file mode 100644
index 0000000..8292b0a
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXElementTest.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VEXElementTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>VEX Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following operations are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#addChild(org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement) <em>Add Child</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#clone() <em>Clone</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getAttribute(java.lang.String) <em>Get Attribute</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#removeAttribute(java.lang.String) <em>Remove Attribute</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setAttribute(java.lang.String, java.lang.String) <em>Set Attribute</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setContent(org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content, int, int) <em>Set Content</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#insertChild(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement) <em>Insert Child</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setNamespace(java.lang.String, java.lang.String) <em>Set Namespace</em>}</li>
+ * </ul>
+ * </p>
+ * @generated
+ */
+public class VEXElementTest extends VEXNodeTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(VEXElementTest.class);
+	}
+
+	/**
+	 * Constructs a new VEX Element test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXElementTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this VEX Element test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected VEXElement getFixture() {
+		return (VEXElement)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createVEXElement());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#addChild(org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement) <em>Add Child</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#addChild(org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement)
+	 * @generated
+	 */
+	public void testAddChild__VEXElement() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#clone() <em>Clone</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#clone()
+	 * @generated
+	 */
+	public void testClone() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getAttribute(java.lang.String) <em>Get Attribute</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#getAttribute(java.lang.String)
+	 * @generated
+	 */
+	public void testGetAttribute__String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#removeAttribute(java.lang.String) <em>Remove Attribute</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#removeAttribute(java.lang.String)
+	 * @generated
+	 */
+	public void testRemoveAttribute__String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setAttribute(java.lang.String, java.lang.String) <em>Set Attribute</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setAttribute(java.lang.String, java.lang.String)
+	 * @generated
+	 */
+	public void testSetAttribute__String_String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setContent(org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content, int, int) <em>Set Content</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setContent(org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Content, int, int)
+	 * @generated
+	 */
+	public void testSetContent__Content_int_int() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#insertChild(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement) <em>Insert Child</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#insertChild(int, org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement)
+	 * @generated
+	 */
+	public void testInsertChild__int_VEXElement() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setNamespace(java.lang.String, java.lang.String) <em>Set Namespace</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXElement#setNamespace(java.lang.String, java.lang.String)
+	 * @generated
+	 */
+	public void testSetNamespace__String_String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+} //VEXElementTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXNodeTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXNodeTest.java
new file mode 100644
index 0000000..6c3a25f
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXNodeTest.java
@@ -0,0 +1,94 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VEXNodeTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>VEX Node</b></em>'.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VEXNodeTest extends TestCase {
+
+	/**
+	 * The fixture for this VEX Node test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXNode fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(VEXNodeTest.class);
+	}
+
+	/**
+	 * Constructs a new VEX Node test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXNodeTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this VEX Node test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(VEXNode fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this VEX Node test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VEXNode getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createVEXNode());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+} //VEXNodeTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXProcessingInstructionTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXProcessingInstructionTest.java
new file mode 100644
index 0000000..a004dd6
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VEXProcessingInstructionTest.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VEXProcessingInstructionTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>VEX Processing Instruction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following operations are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#removeAttribute(java.lang.String) <em>Remove Attribute</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#setAttribute(java.lang.String, java.lang.String) <em>Set Attribute</em>}</li>
+ * </ul>
+ * </p>
+ * @generated
+ */
+public class VEXProcessingInstructionTest extends VEXNodeTest {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(VEXProcessingInstructionTest.class);
+	}
+
+	/**
+	 * Constructs a new VEX Processing Instruction test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VEXProcessingInstructionTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Returns the fixture for this VEX Processing Instruction test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected VEXProcessingInstruction getFixture() {
+		return (VEXProcessingInstruction)fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createVEXProcessingInstruction());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#removeAttribute(java.lang.String) <em>Remove Attribute</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#removeAttribute(java.lang.String)
+	 * @generated
+	 */
+	public void testRemoveAttribute__String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#setAttribute(java.lang.String, java.lang.String) <em>Set Attribute</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.VEXProcessingInstruction#setAttribute(java.lang.String, java.lang.String)
+	 * @generated
+	 */
+	public void testSetAttribute__String_String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+} //VEXProcessingInstructionTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/ValidatorTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/ValidatorTest.java
new file mode 100644
index 0000000..bfe30ca
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/ValidatorTest.java
@@ -0,0 +1,168 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValidatorTest.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.framework.TestCase;
+
+import junit.textui.TestRunner;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.DomEMFFactory;
+
+import org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test case for the model object '<em><b>Validator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following operations are tested:
+ * <ul>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getAttributeDefinition(java.lang.String, java.lang.String) <em>Get Attribute Definition</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getAttributeDefinitions(java.lang.String) <em>Get Attribute Definitions</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getValidItems(java.lang.String) <em>Get Valid Items</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#isValidSequence(java.lang.String, org.eclipse.emf.common.util.EList, boolean) <em>Is Valid Sequence</em>}</li>
+ *   <li>{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#isValidSequence(java.lang.String, org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) <em>Is Valid Sequence</em>}</li>
+ * </ul>
+ * </p>
+ * @generated
+ */
+public class ValidatorTest extends TestCase {
+
+	/**
+	 * The fixture for this Validator test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Validator fixture = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(ValidatorTest.class);
+	}
+
+	/**
+	 * Constructs a new Validator test case with the given name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValidatorTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * Sets the fixture for this Validator test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void setFixture(Validator fixture) {
+		this.fixture = fixture;
+	}
+
+	/**
+	 * Returns the fixture for this Validator test case.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Validator getFixture() {
+		return fixture;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#setUp()
+	 * @generated
+	 */
+	@Override
+	protected void setUp() throws Exception {
+		setFixture(DomEMFFactory.eINSTANCE.createValidator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see junit.framework.TestCase#tearDown()
+	 * @generated
+	 */
+	@Override
+	protected void tearDown() throws Exception {
+		setFixture(null);
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getAttributeDefinition(java.lang.String, java.lang.String) <em>Get Attribute Definition</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getAttributeDefinition(java.lang.String, java.lang.String)
+	 * @generated
+	 */
+	public void testGetAttributeDefinition__String_String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void testGetAttributeDefinitions__String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getValidItems(java.lang.String) <em>Get Valid Items</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#getValidItems(java.lang.String)
+	 * @generated
+	 */
+	public void testGetValidItems__String() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#isValidSequence(java.lang.String, org.eclipse.emf.common.util.EList, boolean) <em>Is Valid Sequence</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#isValidSequence(java.lang.String, org.eclipse.emf.common.util.EList, boolean)
+	 * @generated
+	 */
+	public void testIsValidSequence__String_EList_boolean() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+	/**
+	 * Tests the '{@link org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#isValidSequence(java.lang.String, org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) <em>Is Valid Sequence</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.wst.xml.vex.core.internal.provisional.dom.I.Validator#isValidSequence(java.lang.String, org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean)
+	 * @generated
+	 */
+	public void testIsValidSequence__String_EList_EList_EList_boolean() {
+		// TODO: implement this operation test method
+		// Ensure that you remove @generated or mark it @generated NOT
+		fail();
+	}
+
+} //ValidatorTest
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VexdocumentAllTests.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VexdocumentAllTests.java
new file mode 100644
index 0000000..2d34857
--- /dev/null
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src_emf/org/eclipse/wst/xml/vex/core/internal/provisional/dom/tests/VexdocumentAllTests.java
@@ -0,0 +1,51 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VexdocumentAllTests.java,v 1.1 2008/11/10 20:09:46 dacarver Exp $
+ */
+package org.eclipse.wst.xml.vex.core.internal.provisional.dom.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import junit.textui.TestRunner;
+
+/**
+ * <!-- begin-user-doc -->
+ * A test suite for the '<em><b>Vexdocument</b></em>' model.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VexdocumentAllTests extends TestSuite {
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static void main(String[] args) {
+		TestRunner.run(suite());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static Test suite() {
+		TestSuite suite = new VexdocumentAllTests("Vexdocument Tests");
+		suite.addTest(DomEMFTests.suite());
+		return suite;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VexdocumentAllTests(String name) {
+		super(name);
+	}
+
+} //VexdocumentAllTests