[517072] Add JUnit test for QVTr example
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/.gitignore b/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/.gitignore
index ae3c172..bafb681 100644
--- a/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/.gitignore
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/.gitignore
@@ -1 +1,3 @@
 /bin/
+/src-gen/
+/test-gen/
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/build.properties b/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/build.properties
index b799b34..7d2eae2 100644
--- a/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/build.properties
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/build.properties
@@ -5,5 +5,6 @@
                .,\
                about.html,\
                plugin.properties,\
-               .settings/
+               .settings/,\
+               plugin.xml
 src.includes = about.html
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/plugin.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/plugin.xml
new file mode 100644
index 0000000..c34c55f
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+

+<!--

+ Copyright (c) 2017 Willink Transformations and others.

+ ;All rights reserved. This program and the accompanying materials

+ ;are made available under the terms of the Eclipse Public License v1.0

+ ;which accompanies this distribution, and is available at

+ ;http://www.eclipse.org/legal/epl-v10.html

+ ;

+ ;Contributors:

+ ;  E.D.Willink - Initial API and implementation

+-->

+

+<plugin>

+   <extension

+         point="org.eclipse.core.contenttype.contentTypes">

+   </extension>

+

+</plugin>

diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/AbstractTestQVT.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/AbstractTestQVT.java
index cad5e80..8eb7942 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/AbstractTestQVT.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/AbstractTestQVT.java
@@ -104,7 +104,7 @@
 
 	protected final @NonNull URI testsBaseURI;
 	protected final @NonNull String projectName;
-	protected final @NonNull String testFolderName;
+	//	protected final @NonNull String testFolderName;
 	protected final @NonNull URI testFolderURI;
 	protected final @NonNull URI samplesBaseUri;
 	protected AbstractCompilerChain compilerChain = null;
@@ -112,17 +112,23 @@
 	private QVTiTransformationExecutor generatedExecutor = null;
 	private Set<@NonNull String> nsURIs = new HashSet<@NonNull String>();
 
-	public AbstractTestQVT(@NonNull URI testsBaseURI, @NonNull String projectName, @NonNull String testFolderName) {
+	public AbstractTestQVT(@NonNull URI testsBaseURI, @NonNull String projectName, @Nullable String testFolderName) {
+		this(testsBaseURI, projectName, testFolderName, "samples");
+	}
+
+	public AbstractTestQVT(@NonNull URI testsBaseURI, @NonNull String projectName, @Nullable String testFolderName, @Nullable String samplesFolderName) {
 		super(new QVTiEnvironmentFactory(LoadTestCase.getProjectMap(), null));
-		this.testsBaseURI = testsBaseURI;
+		this.testsBaseURI = testsBaseURI.toString().endsWith("/") ? testsBaseURI :  testsBaseURI.appendSegment("");
 		this.projectName = projectName;
-		this.testFolderName = testFolderName;
-		this.testFolderURI = testsBaseURI.appendSegment(testFolderName);
-		this.samplesBaseUri = testFolderURI.appendSegment("samples");
+		//		this.testFolderName = testFolderName;
+		URI testFolderURI = testFolderName != null ? testsBaseURI.appendSegment(testFolderName) : testsBaseURI;
+		this.testFolderURI = testFolderURI.toString().endsWith("/") ? testFolderURI :  testFolderURI.appendSegment("");
+		URI samplesBaseUri = samplesFolderName != null ? testFolderURI.appendSegment(samplesFolderName) : testFolderURI;
+		this.samplesBaseUri = samplesBaseUri.toString().endsWith("/") ? samplesBaseUri :  samplesBaseUri.appendSegment("");
 	}
 
 	protected void checkOutput(@NonNull Resource outputResource, @NonNull String expectedFile, @Nullable ModelNormalizer normalizer) throws IOException, InterruptedException {
-		URI referenceModelURI = samplesBaseUri.appendSegment(expectedFile);
+		URI referenceModelURI = URI.createURI(expectedFile).resolve(samplesBaseUri);
 		Resource referenceResource = outputResource.getResourceSet().getResource(referenceModelURI, true);
 		assert referenceResource != null;
 		if (normalizer != null) {
@@ -336,7 +342,7 @@
 	}
 
 	public @Nullable Resource loadInput(@NonNull String modelName, @NonNull String modelFile) {
-		URI modelURI = samplesBaseUri.appendSegment(modelFile);
+		URI modelURI = URI.createURI(modelFile).resolve(samplesBaseUri);
 		if (interpretedExecutor != null) {
 			return interpretedExecutor.loadModel(modelName, modelURI);
 		}
@@ -372,7 +378,7 @@
 	}
 
 	public @NonNull Resource saveOutput(@NonNull String modelName, @NonNull String modelFile, @Nullable String expectedFile, @Nullable ModelNormalizer normalizer) throws IOException, InterruptedException {
-		URI modelURI = samplesBaseUri.appendSegment(modelFile);
+		URI modelURI = URI.createURI(modelFile).resolve(samplesBaseUri);
 		ResourceSet resourceSet = /*getResourceSet()*/environmentFactory.getMetamodelManager().getASResourceSet();
 		Resource outputResource;
 		if (interpretedExecutor != null) {
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java
index 5837634..46c3dcc 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java
@@ -65,9 +65,10 @@
 public class QVTcCompilerTests extends LoadTestCase
 {
 	private static final @NonNull String PROJECT_NAME = "org.eclipse.qvtd.xtext.qvtcore.tests";
-	protected static final @NonNull URI TESTS_BASE_URI = URI.createPlatformResourceURI("/org.eclipse.qvtd.xtext.qvtcore.tests/bin/org/eclipse/qvtd/xtext/qvtcore/tests", true);
-	protected static final @NonNull URI TESTS_JAVA_SRC_URI = URI.createPlatformResourceURI("/org.eclipse.qvtd.xtext.qvtcore.tests/test-gen", true);
-	protected static final @NonNull URI TESTS_JAVA_BIN_URI = URI.createPlatformResourceURI("/org.eclipse.qvtd.xtext.qvtcore.tests/bin", true);
+	//	protected static final @NonNull URI TESTS_BASE_URI = URI.createPlatformResourceURI("/org.eclipse.qvtd.xtext.qvtcore.tests/bin/org/eclipse/qvtd/xtext/qvtcore/tests", true);
+	public static final @NonNull URI TESTS_BASE_URI = URI.createPlatformResourceURI("/" + PROJECT_NAME + "/bin/" + PROJECT_NAME.replace(".",  "/"), true);
+	//	protected static final @NonNull URI TESTS_JAVA_SRC_URI = URI.createPlatformResourceURI("/org.eclipse.qvtd.xtext.qvtcore.tests/test-gen", true);
+	//	protected static final @NonNull URI TESTS_JAVA_BIN_URI = URI.createPlatformResourceURI("/org.eclipse.qvtd.xtext.qvtcore.tests/bin", true);
 
 	protected static class MyQVT extends AbstractTestQVT
 	{
@@ -126,10 +127,12 @@
 		}
 
 		protected @NonNull Map<@NonNull String, @Nullable Map<CompilerChain.@NonNull Key<Object>, @Nullable Object>> createBuildCompilerChainOptions() {
+			URI testsJavaSrcURI = URI.createPlatformResourceURI("/" + projectName +"/test-gen", true);
+			URI testsJavaBinURI = URI.createPlatformResourceURI("/" + projectName + "/bin", true);
 			Map<@NonNull String, @Nullable Map<CompilerChain.@NonNull Key<Object>, @Nullable Object>> options = createCompilerChainOptions();
-			QVTcCompilerChain.setOption(options, CompilerChain.JAVA_STEP, CompilerChain.URI_KEY, TESTS_JAVA_SRC_URI);
+			QVTcCompilerChain.setOption(options, CompilerChain.JAVA_STEP, CompilerChain.URI_KEY, testsJavaSrcURI);
 			QVTcCompilerChain.setOption(options, CompilerChain.JAVA_STEP, CompilerChain.JAVA_GENERATED_DEBUG_KEY, true);
-			QVTcCompilerChain.setOption(options, CompilerChain.CLASS_STEP, CompilerChain.URI_KEY, TESTS_JAVA_BIN_URI);
+			QVTcCompilerChain.setOption(options, CompilerChain.CLASS_STEP, CompilerChain.URI_KEY, testsJavaBinURI);
 			return options;
 		}
 
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/META-INF/MANIFEST.MF
index 4a4b91d..582f4ea 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/META-INF/MANIFEST.MF
@@ -15,5 +15,6 @@
  org.eclipse.qvtd.compiler;bundle-version="[0.14.0,1.0.0)",
  org.eclipse.qvtd.codegen;bundle-version="[0.14.0,1.0.0)",
  org.eclipse.qvtd.xtext.qvtimperative.tests;bundle-version="[0.14.0,1.0.0)",
- org.eclipse.qvtd.xtext.qvtcore.tests;bundle-version="[0.14.0,1.0.0)"
+ org.eclipse.qvtd.xtext.qvtcore.tests;bundle-version="[0.14.0,1.0.0)",
+ org.eclipse.qvtd.examples.qvtrelation.hstm2fstm;bundle-version="[0.14.0,1.0.0)"
 Export-Package: org.eclipse.qvtd.xtext.qvtrelation.tests
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
index ffcad10..ce59c4c 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
@@ -62,8 +62,6 @@
 {
 	private static final @NonNull String PROJECT_NAME = "org.eclipse.qvtd.xtext.qvtrelation.tests";
 	private static final @NonNull URI TESTS_BASE_URI = URI.createPlatformResourceURI("/" + PROJECT_NAME + "/bin/" + PROJECT_NAME.replace(".",  "/"), true);
-	private static URI TESTS_JAVA_SRC_URI = URI.createPlatformResourceURI("/" + PROJECT_NAME +"/test-gen", true);
-	private static URI TESTS_JAVA_BIN_URI = URI.createPlatformResourceURI("/" + PROJECT_NAME + "/bin", true);
 
 	protected static class MyQVT extends AbstractTestQVT
 	{
@@ -103,7 +101,11 @@
 		private final @NonNull Map<@NonNull Class<? extends Region>, @NonNull Integer> regionClass2count = new HashMap<>();
 
 		public MyQVT(@NonNull String testFolderName, @NonNull EPackage... eInstances) {
-			super(TESTS_BASE_URI, PROJECT_NAME, testFolderName);
+			this(TESTS_BASE_URI, PROJECT_NAME, testFolderName, "samples", eInstances);
+		}
+
+		public MyQVT(@NonNull URI testsBaseURI, @NonNull String projectName, @Nullable String testFolderName, @Nullable String samplesFolderName, @NonNull EPackage... eInstances) {
+			super(testsBaseURI, projectName, testFolderName, samplesFolderName);
 			installEPackages(eInstances);
 			//
 			// http://www.eclipse.org/emf/2002/Ecore is referenced by just about any model load
@@ -130,9 +132,9 @@
 			assertEquals("Region " + regionClass.getSimpleName() + " count:", count != 0 ? count : null, regionClass2count.get(regionClass));
 		}
 
-		public @NonNull Class<? extends Transformer> buildTransformation(@NonNull String testName, @NonNull String testFileName, @NonNull String outputName,
+		public @NonNull Class<? extends Transformer> buildTransformation(@NonNull String modelsSubPackageName, @NonNull String testFileName, @NonNull String outputName,
 				@NonNull String middleNsURI, boolean isIncremental, @NonNull String @NonNull... genModelFiles) throws Exception {
-			Map<@NonNull String, @Nullable Map<CompilerChain.@NonNull Key<Object>, @Nullable Object>> options = createBuildCompilerChainOptions(testName, isIncremental);
+			Map<@NonNull String, @Nullable Map<CompilerChain.@NonNull Key<Object>, @Nullable Object>> options = createBuildCompilerChainOptions(modelsSubPackageName, isIncremental);
 			return doBuild(testFileName, outputName, options, genModelFiles);
 		}
 
@@ -140,17 +142,19 @@
 			return doCompile(testFileName, outputName, createCompilerChainOptions(basePrefix));
 		}
 
-		protected @NonNull Map<@NonNull String, @Nullable Map<CompilerChain.@NonNull Key<Object>, @Nullable Object>> createBuildCompilerChainOptions(String testName, boolean isIncremental) {
+		protected @NonNull Map<@NonNull String, @Nullable Map<CompilerChain.@NonNull Key<Object>, @Nullable Object>> createBuildCompilerChainOptions(String modelsSubPackageName, boolean isIncremental) {
+			URI testsJavaSrcURI = URI.createPlatformResourceURI("/" + projectName +"/test-gen", true);
+			URI testsJavaBinURI = URI.createPlatformResourceURI("/" + projectName + "/bin", true);
 			Map<@NonNull String, @Nullable String> genModelOptions = new HashMap<>();
-			genModelOptions.put(CompilerChain.GENMODEL_BASE_PREFIX, PROJECT_NAME + "." + testName);
+			genModelOptions.put(CompilerChain.GENMODEL_BASE_PREFIX, projectName + "." + modelsSubPackageName);
 			genModelOptions.put(CompilerChain.GENMODEL_COPYRIGHT_TEXT, "Copyright (c) 2015, 2016 Willink Transformations and others.\n;All rights reserved. This program and the accompanying materials\n;are made available under the terms of the Eclipse Public License v1.0\n;which accompanies this distribution, and is available at\n;http://www.eclipse.org/legal/epl-v10.html\n;\n;Contributors:\n;  E.D.Willink - Initial API and implementation");
 			Map<@NonNull String, @Nullable Map<CompilerChain.@NonNull Key<Object>, @Nullable Object>> options = new HashMap<>();
 			QVTrCompilerChain.setOption(options, CompilerChain.DEFAULT_STEP, CompilerChain.DEBUG_KEY, true);
 			QVTrCompilerChain.setOption(options, CompilerChain.DEFAULT_STEP, CompilerChain.SAVE_OPTIONS_KEY, TestsXMLUtil.defaultSavingOptions);
-			QVTrCompilerChain.setOption(options, CompilerChain.JAVA_STEP, CompilerChain.URI_KEY, TESTS_JAVA_SRC_URI);
+			QVTrCompilerChain.setOption(options, CompilerChain.JAVA_STEP, CompilerChain.URI_KEY, testsJavaSrcURI);
 			QVTrCompilerChain.setOption(options, CompilerChain.JAVA_STEP, CompilerChain.JAVA_INCREMENTAL_KEY, isIncremental);
 			QVTrCompilerChain.setOption(options, CompilerChain.JAVA_STEP, CompilerChain.JAVA_GENERATED_DEBUG_KEY, true);
-			QVTrCompilerChain.setOption(options, CompilerChain.CLASS_STEP, CompilerChain.URI_KEY, TESTS_JAVA_BIN_URI);
+			QVTrCompilerChain.setOption(options, CompilerChain.CLASS_STEP, CompilerChain.URI_KEY, testsJavaBinURI);
 			QVTrCompilerChain.setOption(options, CompilerChain.GENMODEL_STEP, CompilerChain.GENMODEL_USED_GENPACKAGES_KEY, usedGenPackages);
 			QVTrCompilerChain.setOption(options, CompilerChain.GENMODEL_STEP, CompilerChain.GENMODEL_OPTIONS_KEY, genModelOptions);
 			return options;
@@ -440,6 +444,38 @@
 	}
 
 	@Test
+	public void testQVTrCompiler_HierarchicalStateMachine2FlatStateMachine_example_CG() throws Exception {
+		//		Splitter.RESULT.setState(true);
+		//		Splitter.STAGES.setState(true);
+		//		Scheduler.DEBUG_GRAPHS.setState(true);
+		//		AbstractTransformer.EXCEPTIONS.setState(true);
+		//		AbstractTransformer.INVOCATIONS.setState(true);
+		//   	QVTm2QVTp.PARTITIONING.setState(true);
+		//		QVTr2QVTc.VARIABLES.setState(true);
+		URI testsBaseURI = URI.createPlatformResourceURI("/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/bin/org/eclipse/qvtd/examples/qvtrelation/hstm2fstm/", true);
+		String projectName = "org.eclipse.qvtd.examples.qvtrelation.hstm2fstm";
+		MyQVT myQVT = new MyQVT(testsBaseURI, projectName, null, null);
+		try {
+			Class<? extends Transformer> txClass = myQVT.buildTransformation("models",
+				//				"/org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/src/org/eclipse/qvtd/examples/qvtrelation/hstm2fstm/HierarchicalStateMachine2FlatStateMachine.qvtr", "flat",
+				"HierarchicalStateMachine2FlatStateMachine.qvtr", "flat",
+				"http://www.eclipse.org/qvtd/examples/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine2FlatStateMachine", false);//,
+			myQVT.assertRegionCount(BasicMappingRegionImpl.class, 0);
+			myQVT.assertRegionCount(EarlyMerger.EarlyMergedMappingRegion.class, 0);
+			myQVT.assertRegionCount(LateConsumerMerger.LateMergedMappingRegion.class, 1);
+			myQVT.assertRegionCount(MicroMappingRegionImpl.class, 7);
+			//
+			myQVT.createGeneratedExecutor(txClass);
+			myQVT.loadInput("hier", "in/hier.xmi");
+			myQVT.executeTransformation();
+			myQVT.saveOutput("flat", "out/generated_CG.xmi", "out/expected.xmi", FlatStateMachineNormalizer.INSTANCE);
+		}
+		finally {
+			myQVT.dispose();
+		}
+	}
+
+	@Test
 	public void testQVTrCompiler_HierarchicalStateMachine2FlatStateMachine_iCG() throws Exception {
 		//		Splitter.RESULT.setState(true);
 		//		Splitter.STAGES.setState(true);
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine.ecore b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine.ecore
index f9dab4f..b7ce308 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine.ecore
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine.ecore
@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="FlatStateMachine" nsURI="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine"

-    nsPrefix="fstm">

-  <eClassifiers xsi:type="ecore:EClass" name="State">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" lowerBound="1"

-        eType="#//StateMachine" eOpposite="#//StateMachine/ownedStates"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="outTransitions" ordered="false"

-        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/fromState"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="inTransitions" ordered="false"

-        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/toState"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"

-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-  </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="Transition">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" lowerBound="1"

-        eType="#//StateMachine" eOpposite="#//StateMachine/ownedTransitions"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="fromState" ordered="false"

-        lowerBound="1" eType="#//State" eOpposite="#//State/outTransitions"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="toState" ordered="false"

-        lowerBound="1" eType="#//State" eOpposite="#//State/inTransitions"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"

-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-  </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="StateMachine">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedStates" ordered="false"

-        upperBound="-1" eType="#//State" containment="true" eOpposite="#//State/owningStateMachine"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTransitions" ordered="false"

-        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/owningStateMachine"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"

-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-  </eClassifiers>

-</ecore:EPackage>

+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="FlatStateMachine" nsURI="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine"
+    nsPrefix="fstm">
+  <eClassifiers xsi:type="ecore:EClass" name="State">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" lowerBound="1"
+        eType="#//StateMachine" eOpposite="#//StateMachine/ownedStates"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="outTransitions" ordered="false"
+        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/fromState"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inTransitions" ordered="false"
+        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/toState"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Transition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" lowerBound="1"
+        eType="#//StateMachine" eOpposite="#//StateMachine/ownedTransitions"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="fromState" ordered="false"
+        lowerBound="1" eType="#//State" eOpposite="#//State/outTransitions"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="toState" ordered="false"
+        lowerBound="1" eType="#//State" eOpposite="#//State/inTransitions"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StateMachine">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedStates" ordered="false"
+        upperBound="-1" eType="#//State" containment="true" eOpposite="#//State/owningStateMachine"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTransitions" ordered="false"
+        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/owningStateMachine"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine.ecore b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine.ecore
index 27c4b11..2347bae 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine.ecore
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine.ecore
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="HierarchicalStateMachine" nsURI="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine"

-    nsPrefix="hstm">

-  <eClassifiers xsi:type="ecore:EClass" name="State">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" lowerBound="1"

-        eType="#//StateMachine" eOpposite="#//StateMachine/ownedStates"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedStates" ordered="false"

-        upperBound="-1" eType="#//State" eOpposite="#//State/nestingState"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="nestingState" ordered="false"

-        eType="#//State" eOpposite="#//State/nestedStates"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="outTransitions" ordered="false"

-        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/fromState"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="inTransitions" ordered="false"

-        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/toState"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"

-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-  </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="Transition">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" lowerBound="1"

-        eType="#//StateMachine" eOpposite="#//StateMachine/ownedTransitions"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="fromState" ordered="false"

-        lowerBound="1" eType="#//State" eOpposite="#//State/outTransitions"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="toState" ordered="false"

-        lowerBound="1" eType="#//State" eOpposite="#//State/inTransitions"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"

-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-  </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="StateMachine">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedStates" ordered="false"

-        upperBound="-1" eType="#//State" containment="true" eOpposite="#//State/owningStateMachine"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTransitions" ordered="false"

-        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/owningStateMachine"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"

-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-  </eClassifiers>

-</ecore:EPackage>

+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="HierarchicalStateMachine" nsURI="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine"
+    nsPrefix="hstm">
+  <eClassifiers xsi:type="ecore:EClass" name="State">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" lowerBound="1"
+        eType="#//StateMachine" eOpposite="#//StateMachine/ownedStates"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedStates" ordered="false"
+        upperBound="-1" eType="#//State" eOpposite="#//State/nestingState"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestingState" ordered="false"
+        eType="#//State" eOpposite="#//State/nestedStates"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="outTransitions" ordered="false"
+        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/fromState"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="inTransitions" ordered="false"
+        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/toState"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Transition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" lowerBound="1"
+        eType="#//StateMachine" eOpposite="#//StateMachine/ownedTransitions"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="fromState" ordered="false"
+        lowerBound="1" eType="#//State" eOpposite="#//State/outTransitions"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="toState" ordered="false"
+        lowerBound="1" eType="#//State" eOpposite="#//State/inTransitions"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StateMachine">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedStates" ordered="false"
+        upperBound="-1" eType="#//State" containment="true" eOpposite="#//State/owningStateMachine"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTransitions" ordered="false"
+        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/owningStateMachine"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/LargerModel.xmi b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/LargerModel.xmi
index cb50033..9fb8903 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/LargerModel.xmi
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/LargerModel.xmi
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<hstm:StateMachine

-    xmi:version="2.0"

-    xmlns:xmi="http://www.omg.org/XMI"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-    xmlns:hstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine"

-    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine ../HierarchicalStateMachine.ecore"

-    name="sm">

-  <ownedStates

-      outTransitions="//@ownedTransitions.0"

-      inTransitions="//@ownedTransitions.2"

-      name="s1"/>

-  <ownedStates

-      outTransitions="//@ownedTransitions.1 //@ownedTransitions.4"

-      inTransitions="//@ownedTransitions.0"

-      name="s2"/>

-  <ownedStates

-      nestedStates="//@ownedStates.3 //@ownedStates.4"

-      outTransitions="//@ownedTransitions.3"

-      name="s3"/>

-  <ownedStates

-      nestingState="//@ownedStates.2"

-      inTransitions="//@ownedTransitions.1"

-      name="s3a"/>

-  <ownedStates

-      nestedStates="//@ownedStates.5 //@ownedStates.6"

-      nestingState="//@ownedStates.2"

-      inTransitions="//@ownedTransitions.3 //@ownedTransitions.4"

-      name="s3b"/>

-  <ownedStates

-      nestingState="//@ownedStates.4"

-      outTransitions="//@ownedTransitions.2"

-      name="s3ba"/>

-  <ownedStates

-      nestingState="//@ownedStates.4"

-      name="s3bb"/>

-  <ownedTransitions

-      fromState="//@ownedStates.0"

-      toState="//@ownedStates.1"

-      name="t1_2"/>

-  <ownedTransitions

-      fromState="//@ownedStates.1"

-      toState="//@ownedStates.3"

-      name="t2_3a"/>

-  <ownedTransitions

-      fromState="//@ownedStates.5"

-      toState="//@ownedStates.0"

-      name="t3ba_1"/>

-  <ownedTransitions

-      fromState="//@ownedStates.2"

-      toState="//@ownedStates.4"

-      name="t3_3b"/>

-  <ownedTransitions

-      fromState="//@ownedStates.1"

-      toState="//@ownedStates.4"

-      name="t2_3b"/>

-</hstm:StateMachine>

+<?xml version="1.0" encoding="UTF-8"?>
+<hstm:StateMachine
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:hstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine"
+    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine ../HierarchicalStateMachine.ecore"
+    name="sm">
+  <ownedStates
+      outTransitions="//@ownedTransitions.0"
+      inTransitions="//@ownedTransitions.2"
+      name="s1"/>
+  <ownedStates
+      outTransitions="//@ownedTransitions.1 //@ownedTransitions.4"
+      inTransitions="//@ownedTransitions.0"
+      name="s2"/>
+  <ownedStates
+      nestedStates="//@ownedStates.3 //@ownedStates.4"
+      outTransitions="//@ownedTransitions.3"
+      name="s3"/>
+  <ownedStates
+      nestingState="//@ownedStates.2"
+      inTransitions="//@ownedTransitions.1"
+      name="s3a"/>
+  <ownedStates
+      nestedStates="//@ownedStates.5 //@ownedStates.6"
+      nestingState="//@ownedStates.2"
+      inTransitions="//@ownedTransitions.3 //@ownedTransitions.4"
+      name="s3b"/>
+  <ownedStates
+      nestingState="//@ownedStates.4"
+      outTransitions="//@ownedTransitions.2"
+      name="s3ba"/>
+  <ownedStates
+      nestingState="//@ownedStates.4"
+      name="s3bb"/>
+  <ownedTransitions
+      fromState="//@ownedStates.0"
+      toState="//@ownedStates.1"
+      name="t1_2"/>
+  <ownedTransitions
+      fromState="//@ownedStates.1"
+      toState="//@ownedStates.3"
+      name="t2_3a"/>
+  <ownedTransitions
+      fromState="//@ownedStates.5"
+      toState="//@ownedStates.0"
+      name="t3ba_1"/>
+  <ownedTransitions
+      fromState="//@ownedStates.2"
+      toState="//@ownedStates.4"
+      name="t3_3b"/>
+  <ownedTransitions
+      fromState="//@ownedStates.1"
+      toState="//@ownedStates.4"
+      name="t2_3b"/>
+</hstm:StateMachine>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/LargerModel_expected.xmi b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/LargerModel_expected.xmi
index ed2fdb5..2f11e13 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/LargerModel_expected.xmi
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/LargerModel_expected.xmi
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<fstm:StateMachine xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine"

-    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine java://org.eclipse.qvtd.xtext.qvtrelation.tests.HierarchicalStateMachine2FlatStateMachine.FlatStateMachine.FlatStateMachinePackage"

-    name="sm">

-  <ownedStates outTransitions="//@ownedTransitions.4 //@ownedTransitions.8 //@ownedTransitions.9" inTransitions="//@ownedTransitions.10"

-      name="s2"/>

-  <ownedStates outTransitions="//@ownedTransitions.10" inTransitions="//@ownedTransitions.0" name="s1"/>

-  <ownedStates outTransitions="//@ownedTransitions.3 //@ownedTransitions.7" inTransitions="//@ownedTransitions.9" name="s3a"/>

-  <ownedStates outTransitions="//@ownedTransitions.0 //@ownedTransitions.1 //@ownedTransitions.5" inTransitions="//@ownedTransitions.1 //@ownedTransitions.2 //@ownedTransitions.3 //@ownedTransitions.4"

-      name="s3ba"/>

-  <ownedStates outTransitions="//@ownedTransitions.2 //@ownedTransitions.6" inTransitions="//@ownedTransitions.5 //@ownedTransitions.6 //@ownedTransitions.7 //@ownedTransitions.8"

-      name="s3bb"/>

-  <ownedTransitions fromState="//@ownedStates.3" toState="//@ownedStates.1" name="t3ba_1"/>

-  <ownedTransitions fromState="//@ownedStates.3" toState="//@ownedStates.3" name="t3_3b"/>

-  <ownedTransitions fromState="//@ownedStates.4" toState="//@ownedStates.3" name="t3_3b"/>

-  <ownedTransitions fromState="//@ownedStates.2" toState="//@ownedStates.3" name="t3_3b"/>

-  <ownedTransitions fromState="//@ownedStates.0" toState="//@ownedStates.3" name="t2_3b"/>

-  <ownedTransitions fromState="//@ownedStates.3" toState="//@ownedStates.4" name="t3_3b"/>

-  <ownedTransitions fromState="//@ownedStates.4" toState="//@ownedStates.4" name="t3_3b"/>

-  <ownedTransitions fromState="//@ownedStates.2" toState="//@ownedStates.4" name="t3_3b"/>

-  <ownedTransitions fromState="//@ownedStates.0" toState="//@ownedStates.4" name="t2_3b"/>

-  <ownedTransitions fromState="//@ownedStates.0" toState="//@ownedStates.2" name="t2_3a"/>

-  <ownedTransitions fromState="//@ownedStates.1" toState="//@ownedStates.0" name="t1_2"/>

-</fstm:StateMachine>

+<?xml version="1.0" encoding="UTF-8"?>
+<fstm:StateMachine xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine"
+    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine java://org.eclipse.qvtd.xtext.qvtrelation.tests.HierarchicalStateMachine2FlatStateMachine.FlatStateMachine.FlatStateMachinePackage"
+    name="sm">
+  <ownedStates outTransitions="//@ownedTransitions.4 //@ownedTransitions.8 //@ownedTransitions.9" inTransitions="//@ownedTransitions.10"
+      name="s2"/>
+  <ownedStates outTransitions="//@ownedTransitions.10" inTransitions="//@ownedTransitions.0" name="s1"/>
+  <ownedStates outTransitions="//@ownedTransitions.3 //@ownedTransitions.7" inTransitions="//@ownedTransitions.9" name="s3a"/>
+  <ownedStates outTransitions="//@ownedTransitions.0 //@ownedTransitions.1 //@ownedTransitions.5" inTransitions="//@ownedTransitions.1 //@ownedTransitions.2 //@ownedTransitions.3 //@ownedTransitions.4"
+      name="s3ba"/>
+  <ownedStates outTransitions="//@ownedTransitions.2 //@ownedTransitions.6" inTransitions="//@ownedTransitions.5 //@ownedTransitions.6 //@ownedTransitions.7 //@ownedTransitions.8"
+      name="s3bb"/>
+  <ownedTransitions fromState="//@ownedStates.3" toState="//@ownedStates.1" name="t3ba_1"/>
+  <ownedTransitions fromState="//@ownedStates.3" toState="//@ownedStates.3" name="t3_3b"/>
+  <ownedTransitions fromState="//@ownedStates.4" toState="//@ownedStates.3" name="t3_3b"/>
+  <ownedTransitions fromState="//@ownedStates.2" toState="//@ownedStates.3" name="t3_3b"/>
+  <ownedTransitions fromState="//@ownedStates.0" toState="//@ownedStates.3" name="t2_3b"/>
+  <ownedTransitions fromState="//@ownedStates.3" toState="//@ownedStates.4" name="t3_3b"/>
+  <ownedTransitions fromState="//@ownedStates.4" toState="//@ownedStates.4" name="t3_3b"/>
+  <ownedTransitions fromState="//@ownedStates.2" toState="//@ownedStates.4" name="t3_3b"/>
+  <ownedTransitions fromState="//@ownedStates.0" toState="//@ownedStates.4" name="t2_3b"/>
+  <ownedTransitions fromState="//@ownedStates.0" toState="//@ownedStates.2" name="t2_3a"/>
+  <ownedTransitions fromState="//@ownedStates.1" toState="//@ownedStates.0" name="t1_2"/>
+</fstm:StateMachine>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/MiniModel.xmi b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/MiniModel.xmi
index d29b7ef..53537e3 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/MiniModel.xmi
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/MiniModel.xmi
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<hstm:StateMachine

-    xmi:version="2.0"

-    xmlns:xmi="http://www.omg.org/XMI"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-    xmlns:hstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine"

-    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine ../HierarchicalStateMachine.ecore"

-    name="sm">

-  <ownedStates

-      nestedStates="//@ownedStates.1"

-      outTransitions="//@ownedTransitions.0"

-      name="s1"/>

-  <ownedStates

-      nestingState="//@ownedStates.0"

-      inTransitions="//@ownedTransitions.0"

-      name="s2"/>

-  <ownedTransitions

-      fromState="//@ownedStates.0"

-      toState="//@ownedStates.1"

-      name="t12"/>

-</hstm:StateMachine>

+<?xml version="1.0" encoding="UTF-8"?>
+<hstm:StateMachine
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:hstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine"
+    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine ../HierarchicalStateMachine.ecore"
+    name="sm">
+  <ownedStates
+      nestedStates="//@ownedStates.1"
+      outTransitions="//@ownedTransitions.0"
+      name="s1"/>
+  <ownedStates
+      nestingState="//@ownedStates.0"
+      inTransitions="//@ownedTransitions.0"
+      name="s2"/>
+  <ownedTransitions
+      fromState="//@ownedStates.0"
+      toState="//@ownedStates.1"
+      name="t12"/>
+</hstm:StateMachine>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/MiniModel_expected.xmi b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/MiniModel_expected.xmi
index 9d704af..ab49a5b 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/MiniModel_expected.xmi
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/MiniModel_expected.xmi
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<fstm:StateMachine xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine"

-    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine java://org.eclipse.qvtd.xtext.qvtrelation.tests.HierarchicalStateMachine2FlatStateMachine.FlatStateMachine.FlatStateMachinePackage"

-    name="sm">

-  <ownedStates outTransitions="//@ownedTransitions.0" inTransitions="//@ownedTransitions.0" name="s2"/>

-  <ownedTransitions fromState="//@ownedStates.0" toState="//@ownedStates.0" name="t12"/>

-</fstm:StateMachine>

+<?xml version="1.0" encoding="UTF-8"?>
+<fstm:StateMachine xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine"
+    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine java://org.eclipse.qvtd.xtext.qvtrelation.tests.HierarchicalStateMachine2FlatStateMachine.FlatStateMachine.FlatStateMachinePackage"
+    name="sm">
+  <ownedStates outTransitions="//@ownedTransitions.0" inTransitions="//@ownedTransitions.0" name="s2"/>
+  <ownedTransitions fromState="//@ownedStates.0" toState="//@ownedStates.0" name="t12"/>
+</fstm:StateMachine>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/SimpleModel.xmi b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/SimpleModel.xmi
index 8a7b4ce..df3fba2 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/SimpleModel.xmi
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/SimpleModel.xmi
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<hstm:StateMachine

-    xmi:version="2.0"

-    xmlns:xmi="http://www.omg.org/XMI"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-    xmlns:hstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine"

-    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine ../HierarchicalStateMachine.ecore"

-    name="sm">

-  <ownedStates

-      outTransitions="//@ownedTransitions.0"

-      name="s1"/>

-  <ownedStates

-      inTransitions="//@ownedTransitions.0"

-      name="s2"/>

-  <ownedTransitions

-      fromState="//@ownedStates.0"

-      toState="//@ownedStates.1"

-      name="t12"/>

-</hstm:StateMachine>

+<?xml version="1.0" encoding="UTF-8"?>
+<hstm:StateMachine
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:hstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine"
+    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine ../HierarchicalStateMachine.ecore"
+    name="sm">
+  <ownedStates
+      outTransitions="//@ownedTransitions.0"
+      name="s1"/>
+  <ownedStates
+      inTransitions="//@ownedTransitions.0"
+      name="s2"/>
+  <ownedTransitions
+      fromState="//@ownedStates.0"
+      toState="//@ownedStates.1"
+      name="t12"/>
+</hstm:StateMachine>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/SimpleModel_expected.xmi b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/SimpleModel_expected.xmi
index 7cec761..caf7a1f 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/SimpleModel_expected.xmi
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/samples/SimpleModel_expected.xmi
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<fstm:StateMachine xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine"

-    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine java://org.eclipse.qvtd.xtext.qvtrelation.tests.HierarchicalStateMachine2FlatStateMachine.FlatStateMachine.FlatStateMachinePackage"

-    name="sm">

-  <ownedStates inTransitions="//@ownedTransitions.0" name="s2"/>

-  <ownedStates outTransitions="//@ownedTransitions.0" name="s1"/>

-  <ownedTransitions fromState="//@ownedStates.1" toState="//@ownedStates.0" name="t12"/>

-</fstm:StateMachine>

+<?xml version="1.0" encoding="UTF-8"?>
+<fstm:StateMachine xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fstm="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine"
+    xsi:schemaLocation="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine java://org.eclipse.qvtd.xtext.qvtrelation.tests.HierarchicalStateMachine2FlatStateMachine.FlatStateMachine.FlatStateMachinePackage"
+    name="sm">
+  <ownedStates inTransitions="//@ownedTransitions.0" name="s2"/>
+  <ownedStates outTransitions="//@ownedTransitions.0" name="s1"/>
+  <ownedTransitions fromState="//@ownedStates.1" toState="//@ownedStates.0" name="t12"/>
+</fstm:StateMachine>