diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/customIcons/full/obj16/FileReferenceCell.gif b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/customIcons/full/obj16/FileReferenceCell.gif
new file mode 100644
index 0000000..bf00c15
--- /dev/null
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/customIcons/full/obj16/FileReferenceCell.gif
Binary files differ
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/icons/full/obj16/FileReferenceCell.gif b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/icons/full/obj16/FileReferenceCell.gif
new file mode 100644
index 0000000..bf00c15
--- /dev/null
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/icons/full/obj16/FileReferenceCell.gif
Binary files differ
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/plugin.properties b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/plugin.properties
index 9f57fb2..0c7dcaf 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/plugin.properties
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/plugin.properties
@@ -51,3 +51,5 @@
 _UI_ImageFileExtension_PNG_literal = PNG
 _UI_ImageFormat_SVG_literal = SVG
 _UI_ImageFormat_PNG_literal = PNG
+_UI_FileReferenceCell_type = File Reference Cell
+_UI_FileReferenceCell_fileReference_feature = File Reference
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/BasicRowItemProvider.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/BasicRowItemProvider.java
index 269b80e..ff5dd57 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/BasicRowItemProvider.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/BasicRowItemProvider.java
@@ -182,6 +182,9 @@
 
 		newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.ROW__CELLS,
 				BuiltInTypesFactory.eINSTANCE.createTextCell()));
+
+		newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.ROW__CELLS,
+				BuiltInTypesFactory.eINSTANCE.createFileReferenceCell()));
 	}
 
 	/**
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/BuiltInTypesItemProviderAdapterFactory.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/BuiltInTypesItemProviderAdapterFactory.java
index 74fc7d6..60f328f 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/BuiltInTypesItemProviderAdapterFactory.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/BuiltInTypesItemProviderAdapterFactory.java
@@ -256,6 +256,31 @@
 	}
 
 	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected FileReferenceCellItemProvider fileReferenceCellItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter createFileReferenceCellAdapter() {
+		if (fileReferenceCellItemProvider == null) {
+			fileReferenceCellItemProvider = new FileReferenceCellItemProvider(this);
+		}
+
+		return fileReferenceCellItemProvider;
+	}
+
+	/**
 	 * This returns the root adapter factory that contains this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -419,6 +444,9 @@
 		if (defaultFileReferenceItemProvider != null) {
 			defaultFileReferenceItemProvider.dispose();
 		}
+		if (fileReferenceCellItemProvider != null) {
+			fileReferenceCellItemProvider.dispose();
+		}
 	}
 
 }
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/FileReferenceCellItemProvider.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/FileReferenceCellItemProvider.java
new file mode 100644
index 0000000..e61305c
--- /dev/null
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes.edit/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/provider/FileReferenceCellItemProvider.java
@@ -0,0 +1,259 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.core.builtintypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.model2doc.core.builtintypes.BuiltInTypesFactory;
+import org.eclipse.papyrus.model2doc.core.builtintypes.BuiltInTypesPackage;
+import org.eclipse.papyrus.model2doc.core.builtintypes.CellLocation;
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
+
+import org.eclipse.papyrus.model2doc.core.styles.StylesFactory;
+import org.eclipse.papyrus.model2doc.core.styles.StylesPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class FileReferenceCellItemProvider
+		extends ItemProviderAdapter
+		implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public FileReferenceCellItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addLocationPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Location feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addLocationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_Cell_location_feature"), //$NON-NLS-1$
+				getString("_UI_PropertyDescriptor_description", "_UI_Cell_location_feature", "_UI_Cell_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				BuiltInTypesPackage.Literals.CELL__LOCATION,
+				true,
+				false,
+				false,
+				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				null,
+				null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES);
+			childrenFeatures.add(BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL__FILE_REFERENCE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns FileReferenceCell.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/FileReferenceCell")); //$NON-NLS-1$
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		CellLocation labelValue = ((FileReferenceCell) object).getLocation();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ? getString("_UI_FileReferenceCell_type") : //$NON-NLS-1$
+				getString("_UI_FileReferenceCell_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(FileReferenceCell.class)) {
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__LOCATION:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+			return;
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__NAMED_STYLES:
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add(createChildParameter(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES,
+				StylesFactory.eINSTANCE.createIntNamedStyle()));
+
+		newChildDescriptors.add(createChildParameter(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES,
+				StylesFactory.eINSTANCE.createStringNamedStyle()));
+
+		newChildDescriptors.add(createChildParameter(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES,
+				StylesFactory.eINSTANCE.createBooleanNamedStyle()));
+
+		newChildDescriptors.add(createChildParameter(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES,
+				StylesFactory.eINSTANCE.createDoubleNamedStyle()));
+
+		newChildDescriptors.add(createChildParameter(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES,
+				StylesFactory.eINSTANCE.createIntListNamedStyle()));
+
+		newChildDescriptors.add(createChildParameter(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES,
+				StylesFactory.eINSTANCE.createStringListNamedStyle()));
+
+		newChildDescriptors.add(createChildParameter(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES,
+				StylesFactory.eINSTANCE.createBooleanListNamedStyle()));
+
+		newChildDescriptors.add(createChildParameter(StylesPackage.Literals.STYLED_ELEMENT__NAMED_STYLES,
+				StylesFactory.eINSTANCE.createDoubleListNamedStyle()));
+
+		newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL__FILE_REFERENCE,
+				BuiltInTypesFactory.eINSTANCE.createDefaultFileReference()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return ((IChildCreationExtender) adapterFactory).getResourceLocator();
+	}
+
+}
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.ecore b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.ecore
index 04ae5e1..9edadea 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.ecore
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.ecore
@@ -163,4 +163,8 @@
     <eLiterals name="SVG" literal="svg"/>
     <eLiterals name="PNG" value="1" literal="png"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="FileReferenceCell" eSuperTypes="#//Cell">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="fileReference" ordered="false"
+        eType="#//IFileReference" containment="true"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.genmodel b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.genmodel
index 7996706..d21bcd6 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.genmodel
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.genmodel
@@ -96,5 +96,9 @@
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="BuiltInTypes.ecore#//DefaultFileReference">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute BuiltInTypes.ecore#//DefaultFileReference/filePath"/>
     </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="BuiltInTypes.ecore#//FileReferenceCell">
+      <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+          createChild="true" ecoreFeature="ecore:EReference BuiltInTypes.ecore#//FileReferenceCell/fileReference"/>
+    </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.notation b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.notation
index 3a093eb..b4c82bd 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.notation
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.notation
@@ -119,7 +119,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="__NZ943AKEemJ-foOn68QUw"/>
       </children>
       <element xmi:type="uml:Class" href="BuiltInTypes.uml#__NYvsHAKEemJ-foOn68QUw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="__NZ90XAKEemJ-foOn68QUw" x="-120" y="100"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="__NZ90XAKEemJ-foOn68QUw" x="-160" y="100" width="130" height="115"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_EUWCcHALEemJ-foOn68QUw" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_EUWCcnALEemJ-foOn68QUw" type="Interface_NameLabel"/>
@@ -179,7 +179,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_h6yXALEemJ-foOn68QUw"/>
       </children>
       <element xmi:type="uml:Enumeration" href="BuiltInTypes.uml#_H_dCQHALEemJ-foOn68QUw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_h6wXALEemJ-foOn68QUw" x="-120" y="240"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H_h6wXALEemJ-foOn68QUw" x="-160" y="240"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_XySo4HALEemJ-foOn68QUw" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_XyTP8HALEemJ-foOn68QUw" type="Class_NameLabel"/>
@@ -209,7 +209,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XyT3B3ALEemJ-foOn68QUw"/>
       </children>
       <element xmi:type="uml:Class" href="BuiltInTypes.uml#_XyQMoHALEemJ-foOn68QUw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XySo4XALEemJ-foOn68QUw" x="40" y="560" width="201"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XySo4XALEemJ-foOn68QUw" x="-40" y="560" width="161"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_L-AboHsFEemo4rKYxRobdQ" type="Class_Shape" fontName="Segoe UI" italic="true" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_L-CQ0HsFEemo4rKYxRobdQ" type="Class_NameLabel"/>
@@ -339,7 +339,7 @@
           <element xmi:type="uml:Operation" href="BuiltInTypes.uml#_6HWesJQUEemHKPZQudxUGA"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_6H7tgZQUEemHKPZQudxUGA"/>
         </children>
-        <children xmi:type="notation:Shape" xmi:id="_uWs3QELZEeuyx6IwESzSjg" type="Operation_InterfaceOperationLabel">
+        <children xmi:type="notation:Shape" xmi:id="_uWs3QELZEeuyx6IwESzSjg" type="Operation_InterfaceOperationLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Operation" href="BuiltInTypes.uml#_uV4-8ELZEeuyx6IwESzSjg"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_uWs3QULZEeuyx6IwESzSjg"/>
         </children>
@@ -355,7 +355,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1XZj5QUEemHKPZQudxUGA"/>
       </children>
       <element xmi:type="uml:Interface" href="BuiltInTypes.uml#_o1CCUJQUEemHKPZQudxUGA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1ShAZQUEemHKPZQudxUGA" x="40" y="780" width="201" height="121"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o1ShAZQUEemHKPZQudxUGA" x="140" y="780" width="201" height="121"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_tMGwQJQUEemHKPZQudxUGA" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_tMHXUJQUEemHKPZQudxUGA" type="Class_NameLabel"/>
@@ -373,7 +373,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tMHXV5QUEemHKPZQudxUGA"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_tMHXWJQUEemHKPZQudxUGA" type="Class_OperationCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_dnwYQELaEeuyx6IwESzSjg" type="Operation_ClassOperationLabel">
+        <children xmi:type="notation:Shape" xmi:id="_dnwYQELaEeuyx6IwESzSjg" type="Operation_ClassOperationLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Operation" href="BuiltInTypes.uml#_c4WUkELaEeuyx6IwESzSjg"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_dnwYQULaEeuyx6IwESzSjg"/>
         </children>
@@ -389,7 +389,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tMH-ZJQUEemHKPZQudxUGA"/>
       </children>
       <element xmi:type="uml:Class" href="BuiltInTypes.uml#_tL-NYJQUEemHKPZQudxUGA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tMGwQZQUEemHKPZQudxUGA" x="40" y="980" width="201"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tMGwQZQUEemHKPZQudxUGA" x="140" y="980" width="201"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_hLCBoC8ZEeuTioAhh-QJ3Q" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_hLG6IC8ZEeuTioAhh-QJ3Q" type="Interface_NameLabel"/>
@@ -415,9 +415,9 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hLHhPi8ZEeuTioAhh-QJ3Q"/>
       </children>
       <element xmi:type="uml:Interface" href="pathmap://MODEL2DOC/STYLES/Styles.uml#_cPAPwC5ZEeud9Ihhf94UEg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hLCBoS8ZEeuTioAhh-QJ3Q" x="-160" y="380" width="121" height="121"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hLCBoS8ZEeuTioAhh-QJ3Q" x="-160" y="380" width="130" height="115"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_05oYwELZEeuyx6IwESzSjg" type="PrimitiveType_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_05oYwELZEeuyx6IwESzSjg" type="PrimitiveType_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_05qN8ELZEeuyx6IwESzSjg" type="PrimitiveType_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_05qN8ULZEeuyx6IwESzSjg" type="PrimitiveType_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_05qN8kLZEeuyx6IwESzSjg" y="15"/>
@@ -435,15 +435,41 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_05q1CULZEeuyx6IwESzSjg"/>
       </children>
       <element xmi:type="uml:PrimitiveType" href="BuiltInTypes.uml#_05kuYELZEeuyx6IwESzSjg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_05oYwULZEeuyx6IwESzSjg" x="380" y="1080"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_05oYwULZEeuyx6IwESzSjg" x="-100" y="880"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_22VWAELZEeuyx6IwESzSjg" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_22VWAULZEeuyx6IwESzSjg"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_22WkIELZEeuyx6IwESzSjg" name="BASE_ELEMENT">
+    <children xmi:type="notation:Shape" xmi:id="_aLNXoFcMEeuBqtWKTOr8pw" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_aLNXolcMEeuBqtWKTOr8pw" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_aLNXo1cMEeuBqtWKTOr8pw" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_aLNXpFcMEeuBqtWKTOr8pw" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aLN-sFcMEeuBqtWKTOr8pw" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_aLN-sVcMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aLN-slcMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aLN-s1cMEeuBqtWKTOr8pw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aLN-tFcMEeuBqtWKTOr8pw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aLN-tVcMEeuBqtWKTOr8pw" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_aLN-tlcMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aLN-t1cMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aLN-uFcMEeuBqtWKTOr8pw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aLN-uVcMEeuBqtWKTOr8pw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aLN-ulcMEeuBqtWKTOr8pw" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_aLN-u1cMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aLN-vFcMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aLN-vVcMEeuBqtWKTOr8pw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aLN-vlcMEeuBqtWKTOr8pw"/>
+      </children>
+      <element xmi:type="uml:Class" href="BuiltInTypes.uml#_aLJGMFcMEeuBqtWKTOr8pw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aLNXoVcMEeuBqtWKTOr8pw" x="160" y="560" width="161"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_uU1GYFcOEeuVS95e7Bg9EA" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_uU1GYVcOEeuVS95e7Bg9EA"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_uU1GY1cOEeuVS95e7Bg9EA" name="BASE_ELEMENT">
         <eObjectValue xmi:type="uml:PrimitiveType" href="BuiltInTypes.uml#_05kuYELZEeuyx6IwESzSjg"/>
       </styles>
       <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22VWAkLZEeuyx6IwESzSjg" x="580" y="1080"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uU1GYlcOEeuVS95e7Bg9EA" x="580" y="1080"/>
     </children>
     <styles xmi:type="notation:StringValueStyle" xmi:id="_WXAMEXAKEemJ-foOn68QUw" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="_WXAMEnAKEemJ-foOn68QUw"/>
@@ -519,8 +545,8 @@
       </children>
       <styles xmi:type="notation:FontStyle" xmi:id="_cvs-EXALEemJ-foOn68QUw" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="BuiltInTypes.uml#_cvcfYHALEemJ-foOn68QUw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cvs-EnALEemJ-foOn68QUw" points="[140, 560, -643984, -643984]$[140, 520, -643984, -643984]$[140, 491, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cwN7cHALEemJ-foOn68QUw" id="(0.4975124378109453,0.0)"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cvs-EnALEemJ-foOn68QUw" points="[-40, 560, -643984, -643984]$[-40, 520, -643984, -643984]$[140, 520, -643984, -643984]$[140, 490, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cwN7cHALEemJ-foOn68QUw" id="(0.6211180124223602,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cwN7cXALEemJ-foOn68QUw" id="(0.4975124378109453,1.0)"/>
     </edges>
     <edges xmi:type="notation:Connector" xmi:id="_eFgTYHALEemJ-foOn68QUw" type="Association_Edge" source="_lYJ3EHAKEemJ-foOn68QUw" target="_-RiLcHAKEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
@@ -635,14 +661,16 @@
     </edges>
     <edges xmi:type="notation:Connector" xmi:id="_ALsmwJQVEemHKPZQudxUGA" type="InterfaceRealization_Edge" source="_tMGwQJQUEemHKPZQudxUGA" target="_o1ShAJQUEemHKPZQudxUGA" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_ALtN0JQVEemHKPZQudxUGA" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qcvscFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ALtN0ZQVEemHKPZQudxUGA" y="40"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_ALtN0pQVEemHKPZQudxUGA" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qdYloFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ALtN05QVEemHKPZQudxUGA" y="60"/>
       </children>
       <styles xmi:type="notation:FontStyle" xmi:id="_ALsmwZQVEemHKPZQudxUGA" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="BuiltInTypes.uml#_AK-1EJQVEemHKPZQudxUGA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ALsmwpQVEemHKPZQudxUGA" points="[140, 980, -643984, -643984]$[140, 891, -643984, -643984]"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ALsmwpQVEemHKPZQudxUGA" points="[215, 980, -643984, -643984]$[215, 891, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AM784JQVEemHKPZQudxUGA" id="(0.4975124378109453,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AM784ZQVEemHKPZQudxUGA" id="(0.4975124378109453,1.0)"/>
     </edges>
@@ -657,15 +685,59 @@
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lHSb0C8ZEeuTioAhh-QJ3Q" id="(0.0,0.5405405405405406)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lHTC4C8ZEeuTioAhh-QJ3Q" id="(1.0,0.49586776859504134)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_22WkIULZEeuyx6IwESzSjg" type="StereotypeCommentLink" source="_05oYwELZEeuyx6IwESzSjg" target="_22VWAELZEeuyx6IwESzSjg">
-      <styles xmi:type="notation:FontStyle" xmi:id="_22WkIkLZEeuyx6IwESzSjg"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_22XLMELZEeuyx6IwESzSjg" name="BASE_ELEMENT">
+    <edges xmi:type="notation:Connector" xmi:id="_dqrvMFcMEeuBqtWKTOr8pw" type="Association_Edge" source="_aLNXoFcMEeuBqtWKTOr8pw" target="_o1ShAJQUEemHKPZQudxUGA" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_dqrvM1cMEeuBqtWKTOr8pw" type="Association_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qd2fsFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_dqrvNFcMEeuBqtWKTOr8pw" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_dqrvNVcMEeuBqtWKTOr8pw" visible="false" type="Association_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qeTLoFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_dqrvNlcMEeuBqtWKTOr8pw" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_dqrvN1cMEeuBqtWKTOr8pw" visible="false" type="Association_TargetRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qe4acFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_dqrvOFcMEeuBqtWKTOr8pw" x="28" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_dqrvOVcMEeuBqtWKTOr8pw" type="Association_SourceRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qfWUgFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_dqrvOlcMEeuBqtWKTOr8pw" x="-28" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_dqrvO1cMEeuBqtWKTOr8pw" visible="false" type="Association_SourceMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qf0OkFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_dqrvPFcMEeuBqtWKTOr8pw" x="28" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_dqrvPVcMEeuBqtWKTOr8pw" type="Association_TargetMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qgRhkFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_dqrvPlcMEeuBqtWKTOr8pw" x="-28" y="-20"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_dqrvMVcMEeuBqtWKTOr8pw" fontName="Segoe UI"/>
+      <element xmi:type="uml:Association" href="BuiltInTypes.uml#_dqJjsFcMEeuBqtWKTOr8pw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dqrvMlcMEeuBqtWKTOr8pw" points="[240, 660, -643984, -643984]$[240, 720, -643984, -643984]$[240, 780, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_drwtQFcMEeuBqtWKTOr8pw" id="(0.4968944099378882,1.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_drwtQVcMEeuBqtWKTOr8pw" id="(0.4975124378109453,0.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_nWcC0FcMEeuBqtWKTOr8pw" type="InterfaceRealization_Edge" source="_aLNXoFcMEeuBqtWKTOr8pw" target="_EUWCcHALEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_nWcC01cMEeuBqtWKTOr8pw" type="InterfaceRealization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_nWcC1FcMEeuBqtWKTOr8pw" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_nWcp4FcMEeuBqtWKTOr8pw" type="InterfaceRealization_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_nWcp4VcMEeuBqtWKTOr8pw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_nWcC0VcMEeuBqtWKTOr8pw" fontName="Segoe UI"/>
+      <element xmi:type="uml:InterfaceRealization" href="BuiltInTypes.uml#_nV3bEFcMEeuBqtWKTOr8pw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nWcC0lcMEeuBqtWKTOr8pw" points="[220, 560, -643984, -643984]$[220, 520, -643984, -643984]$[140, 520, -643984, -643984]$[140, 490, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nXcIYFcMEeuBqtWKTOr8pw" id="(0.37267080745341613,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nXcIYVcMEeuBqtWKTOr8pw" id="(0.4975124378109453,0.9969969969969966)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_uU1tcFcOEeuVS95e7Bg9EA" type="StereotypeCommentLink" source="_05oYwELZEeuyx6IwESzSjg" target="_uU1GYFcOEeuVS95e7Bg9EA">
+      <styles xmi:type="notation:FontStyle" xmi:id="_uU1tcVcOEeuVS95e7Bg9EA"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_uU2UglcOEeuVS95e7Bg9EA" name="BASE_ELEMENT">
         <eObjectValue xmi:type="uml:PrimitiveType" href="BuiltInTypes.uml#_05kuYELZEeuyx6IwESzSjg"/>
       </styles>
       <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_22WkI0LZEeuyx6IwESzSjg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_22WkJELZEeuyx6IwESzSjg"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_22WkJULZEeuyx6IwESzSjg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uU1tclcOEeuVS95e7Bg9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uU2UgFcOEeuVS95e7Bg9EA"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uU2UgVcOEeuVS95e7Bg9EA"/>
     </edges>
   </notation:Diagram>
   <css:ModelStyleSheets xmi:id="_ePy4kHCfEemJ-foOn68QUw">
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.uml b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.uml
index ad33008..cabee3c 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.uml
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.uml
@@ -232,6 +232,22 @@
         <body>Returns a file accessor to access to the file path.</body>
       </ownedComment>
     </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_aLJGMFcMEeuBqtWKTOr8pw" name="FileReferenceCell">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_dqKKwFcMEeuBqtWKTOr8pw" name="fileReference" type="_o1CCUJQUEemHKPZQudxUGA" aggregation="composite" association="_dqJjsFcMEeuBqtWKTOr8pw">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dqKKwVcMEeuBqtWKTOr8pw"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dqKKwlcMEeuBqtWKTOr8pw" value="1"/>
+      </ownedAttribute>
+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_nV3bEFcMEeuBqtWKTOr8pw" client="_aLJGMFcMEeuBqtWKTOr8pw">
+        <supplier xmi:type="uml:Interface" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_EUUNQHALEemJ-foOn68QUw"/>
+        <contract xmi:type="uml:Interface" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_EUUNQHALEemJ-foOn68QUw"/>
+      </interfaceRealization>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_dqJjsFcMEeuBqtWKTOr8pw" memberEnd="_dqKKwFcMEeuBqtWKTOr8pw _dqKKw1cMEeuBqtWKTOr8pw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dqJjsVcMEeuBqtWKTOr8pw" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dqJjslcMEeuBqtWKTOr8pw" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_dqKKw1cMEeuBqtWKTOr8pw" name="filereferencecell" type="_aLJGMFcMEeuBqtWKTOr8pw" association="_dqJjsFcMEeuBqtWKTOr8pw"/>
+    </packagedElement>
     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_txSQgHCfEemJ-foOn68QUw">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_txVT0HCfEemJ-foOn68QUw" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/AbstractTable.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/AbstractTable.java
index efc4f90..314d814 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/AbstractTable.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/AbstractTable.java
@@ -61,7 +61,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Caption</em>' attribute.
+	 *            the new value of the '<em>Caption</em>' attribute.
 	 * @see #getCaption()
 	 * @generated
 	 */
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/BuiltInTypesFactory.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/BuiltInTypesFactory.java
index 7c2ea81..100f420 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/BuiltInTypesFactory.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/BuiltInTypesFactory.java
@@ -95,6 +95,16 @@
 	DefaultFileReference createDefaultFileReference();
 
 	/**
+	 * Returns a new object of class '<em>File Reference Cell</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>File Reference Cell</em>'.
+	 * @generated
+	 */
+	FileReferenceCell createFileReferenceCell();
+
+	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/BuiltInTypesPackage.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/BuiltInTypesPackage.java
index 12c353a..10b9047 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/BuiltInTypesPackage.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/BuiltInTypesPackage.java
@@ -763,6 +763,77 @@
 	int DEFAULT_FILE_REFERENCE_OPERATION_COUNT = IFILE_REFERENCE_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.core.builtintypes.impl.FileReferenceCellImpl <em>File Reference Cell</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.impl.FileReferenceCellImpl
+	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.impl.BuiltInTypesPackageImpl#getFileReferenceCell()
+	 * @generated
+	 */
+	int FILE_REFERENCE_CELL = 12;
+
+	/**
+	 * The feature id for the '<em><b>Named Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int FILE_REFERENCE_CELL__NAMED_STYLES = CELL__NAMED_STYLES;
+
+	/**
+	 * The feature id for the '<em><b>Location</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int FILE_REFERENCE_CELL__LOCATION = CELL__LOCATION;
+
+	/**
+	 * The feature id for the '<em><b>File Reference</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int FILE_REFERENCE_CELL__FILE_REFERENCE = CELL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>File Reference Cell</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int FILE_REFERENCE_CELL_FEATURE_COUNT = CELL_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Named Style</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int FILE_REFERENCE_CELL___GET_NAMED_STYLE__STRING = CELL___GET_NAMED_STYLE__STRING;
+
+	/**
+	 * The number of operations of the '<em>File Reference Cell</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int FILE_REFERENCE_CELL_OPERATION_COUNT = CELL_OPERATION_COUNT + 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.core.builtintypes.CellLocation <em>Cell Location</em>}' enum.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -771,7 +842,7 @@
 	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.impl.BuiltInTypesPackageImpl#getCellLocation()
 	 * @generated
 	 */
-	int CELL_LOCATION = 12;
+	int CELL_LOCATION = 13;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.core.builtintypes.ImageFormat <em>Image Format</em>}' enum.
@@ -782,7 +853,7 @@
 	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.impl.BuiltInTypesPackageImpl#getImageFormat()
 	 * @generated
 	 */
-	int IMAGE_FORMAT = 13;
+	int IMAGE_FORMAT = 14;
 
 
 	/**
@@ -794,7 +865,7 @@
 	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.impl.BuiltInTypesPackageImpl#getIInputFileAccessor()
 	 * @generated
 	 */
-	int IINPUT_FILE_ACCESSOR = 14;
+	int IINPUT_FILE_ACCESSOR = 15;
 
 
 	/**
@@ -1104,6 +1175,29 @@
 	EAttribute getDefaultFileReference_FilePath();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell <em>File Reference Cell</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>File Reference Cell</em>'.
+	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell
+	 * @generated
+	 */
+	EClass getFileReferenceCell();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell#getFileReference <em>File Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the containment reference '<em>File Reference</em>'.
+	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell#getFileReference()
+	 * @see #getFileReferenceCell()
+	 * @generated
+	 */
+	EReference getFileReferenceCell_FileReference();
+
+	/**
 	 * Returns the meta object for enum '{@link org.eclipse.papyrus.model2doc.core.builtintypes.CellLocation <em>Cell Location</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1433,6 +1527,26 @@
 		EAttribute DEFAULT_FILE_REFERENCE__FILE_PATH = eINSTANCE.getDefaultFileReference_FilePath();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.model2doc.core.builtintypes.impl.FileReferenceCellImpl <em>File Reference Cell</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.model2doc.core.builtintypes.impl.FileReferenceCellImpl
+		 * @see org.eclipse.papyrus.model2doc.core.builtintypes.impl.BuiltInTypesPackageImpl#getFileReferenceCell()
+		 * @generated
+		 */
+		EClass FILE_REFERENCE_CELL = eINSTANCE.getFileReferenceCell();
+
+		/**
+		 * The meta object literal for the '<em><b>File Reference</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference FILE_REFERENCE_CELL__FILE_REFERENCE = eINSTANCE.getFileReferenceCell_FileReference();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.model2doc.core.builtintypes.CellLocation <em>Cell Location</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/Cell.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/Cell.java
index 9cd0575..8f619b3 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/Cell.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/Cell.java
@@ -57,7 +57,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Location</em>' attribute.
+	 *            the new value of the '<em>Location</em>' attribute.
 	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.CellLocation
 	 * @see #getLocation()
 	 * @generated
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/CellLocation.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/CellLocation.java
index b476b66..8e728b2 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/CellLocation.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/CellLocation.java
@@ -154,7 +154,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param literal
-	 *                    the literal.
+	 *            the literal.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
@@ -174,7 +174,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param name
-	 *                 the name.
+	 *            the name.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
@@ -194,7 +194,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the integer value.
+	 *            the integer value.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/DefaultFileReference.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/DefaultFileReference.java
index a76fc99..172afd2 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/DefaultFileReference.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/DefaultFileReference.java
@@ -58,7 +58,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>File Path</em>' attribute.
+	 *            the new value of the '<em>File Path</em>' attribute.
 	 * @see #getFilePath()
 	 * @generated
 	 */
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/FileReferenceCell.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/FileReferenceCell.java
new file mode 100644
index 0000000..6720e45
--- /dev/null
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/FileReferenceCell.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.core.builtintypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>File Reference Cell</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell#getFileReference <em>File Reference</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.model2doc.core.builtintypes.BuiltInTypesPackage#getFileReferenceCell()
+ * @model
+ * @generated
+ */
+public interface FileReferenceCell extends Cell {
+	/**
+	 * Returns the value of the '<em><b>File Reference</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>File Reference</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>File Reference</em>' containment reference.
+	 * @see #setFileReference(IFileReference)
+	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.BuiltInTypesPackage#getFileReferenceCell_FileReference()
+	 * @model containment="true" ordered="false"
+	 * @generated
+	 */
+	IFileReference getFileReference();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell#getFileReference <em>File Reference</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>File Reference</em>' containment reference.
+	 * @see #getFileReference()
+	 * @generated
+	 */
+	void setFileReference(IFileReference value);
+
+} // FileReferenceCell
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/ImageFormat.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/ImageFormat.java
index 1c44302..6bfb0db 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/ImageFormat.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/ImageFormat.java
@@ -106,7 +106,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param literal
-	 *                    the literal.
+	 *            the literal.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
@@ -126,7 +126,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param name
-	 *                 the name.
+	 *            the name.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
@@ -146,7 +146,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the integer value.
+	 *            the integer value.
 	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/TextCell.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/TextCell.java
index cceb5e9..0cba860 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/TextCell.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/TextCell.java
@@ -54,7 +54,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Text</em>' attribute.
+	 *            the new value of the '<em>Text</em>' attribute.
 	 * @see #getText()
 	 * @generated
 	 */
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/TextListItem.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/TextListItem.java
index b4f4736..c803f9f 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/TextListItem.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/TextListItem.java
@@ -59,7 +59,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Text</em>' attribute.
+	 *            the new value of the '<em>Text</em>' attribute.
 	 * @see #getText()
 	 * @generated
 	 */
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/BuiltInTypesFactoryImpl.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/BuiltInTypesFactoryImpl.java
index ff18d84..cacfe1b 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/BuiltInTypesFactoryImpl.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/BuiltInTypesFactoryImpl.java
@@ -84,6 +84,8 @@
 			return createBasicList();
 		case BuiltInTypesPackage.DEFAULT_FILE_REFERENCE:
 			return createDefaultFileReference();
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL:
+			return createFileReferenceCell();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
@@ -207,6 +209,18 @@
 	 *
 	 * @generated
 	 */
+	@Override
+	public FileReferenceCell createFileReferenceCell() {
+		FileReferenceCellImpl fileReferenceCell = new FileReferenceCellImpl();
+		return fileReferenceCell;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	public CellLocation createCellLocationFromString(EDataType eDataType, String initialValue) {
 		CellLocation result = CellLocation.get(initialValue);
 		if (result == null)
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/BuiltInTypesPackageImpl.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/BuiltInTypesPackageImpl.java
index 4bf289a..b82ec4d 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/BuiltInTypesPackageImpl.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/BuiltInTypesPackageImpl.java
@@ -33,6 +33,7 @@
 import org.eclipse.papyrus.model2doc.core.builtintypes.Cell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.CellLocation;
 import org.eclipse.papyrus.model2doc.core.builtintypes.DefaultFileReference;
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.IFileReference;
 import org.eclipse.papyrus.model2doc.core.builtintypes.ImageFormat;
 import org.eclipse.papyrus.model2doc.core.builtintypes.ListItem;
@@ -152,6 +153,14 @@
 	 *
 	 * @generated
 	 */
+	private EClass fileReferenceCellEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	private EEnum cellLocationEEnum = null;
 
 	/**
@@ -545,6 +554,28 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getFileReferenceCell() {
+		return fileReferenceCellEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getFileReferenceCell_FileReference() {
+		return (EReference) fileReferenceCellEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public EEnum getCellLocation() {
 		return cellLocationEEnum;
 	}
@@ -644,6 +675,9 @@
 		defaultFileReferenceEClass = createEClass(DEFAULT_FILE_REFERENCE);
 		createEAttribute(defaultFileReferenceEClass, DEFAULT_FILE_REFERENCE__FILE_PATH);
 
+		fileReferenceCellEClass = createEClass(FILE_REFERENCE_CELL);
+		createEReference(fileReferenceCellEClass, FILE_REFERENCE_CELL__FILE_REFERENCE);
+
 		// Create enums
 		cellLocationEEnum = createEEnum(CELL_LOCATION);
 		imageFormatEEnum = createEEnum(IMAGE_FORMAT);
@@ -694,6 +728,7 @@
 		textListItemEClass.getESuperTypes().add(this.getListItem());
 		basicListEClass.getESuperTypes().add(this.getAbstractList());
 		defaultFileReferenceEClass.getESuperTypes().add(this.getIFileReference());
+		fileReferenceCellEClass.getESuperTypes().add(this.getCell());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(abstractTableEClass, AbstractTable.class, "AbstractTable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
@@ -741,6 +776,10 @@
 		initEClass(defaultFileReferenceEClass, DefaultFileReference.class, "DefaultFileReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getDefaultFileReference_FilePath(), ecorePackage.getEString(), "filePath", null, 1, 1, DefaultFileReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
+		initEClass(fileReferenceCellEClass, FileReferenceCell.class, "FileReferenceCell", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getFileReferenceCell_FileReference(), this.getIFileReference(), null, "fileReference", null, 0, 1, FileReferenceCell.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, //$NON-NLS-1$
+				!IS_DERIVED, !IS_ORDERED);
+
 		// Initialize enums and add enum literals
 		initEEnum(cellLocationEEnum, CellLocation.class, "CellLocation"); //$NON-NLS-1$
 		addEEnumLiteral(cellLocationEEnum, CellLocation.CORNER);
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/FileReferenceCellImpl.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/FileReferenceCellImpl.java
new file mode 100644
index 0000000..1fc764c
--- /dev/null
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/impl/FileReferenceCellImpl.java
@@ -0,0 +1,364 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.core.builtintypes.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.model2doc.core.builtintypes.BuiltInTypesPackage;
+import org.eclipse.papyrus.model2doc.core.builtintypes.CellLocation;
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
+import org.eclipse.papyrus.model2doc.core.builtintypes.IFileReference;
+
+import org.eclipse.papyrus.model2doc.core.styles.NamedStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>File Reference Cell</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.model2doc.core.builtintypes.impl.FileReferenceCellImpl#getNamedStyles <em>Named Styles</em>}</li>
+ * <li>{@link org.eclipse.papyrus.model2doc.core.builtintypes.impl.FileReferenceCellImpl#getLocation <em>Location</em>}</li>
+ * <li>{@link org.eclipse.papyrus.model2doc.core.builtintypes.impl.FileReferenceCellImpl#getFileReference <em>File Reference</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FileReferenceCellImpl extends MinimalEObjectImpl.Container implements FileReferenceCell {
+	/**
+	 * The cached value of the '{@link #getNamedStyles() <em>Named Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getNamedStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<NamedStyle> namedStyles;
+
+	/**
+	 * The default value of the '{@link #getLocation() <em>Location</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getLocation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final CellLocation LOCATION_EDEFAULT = CellLocation.BODY;
+
+	/**
+	 * The cached value of the '{@link #getLocation() <em>Location</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getLocation()
+	 * @generated
+	 * @ordered
+	 */
+	protected CellLocation location = LOCATION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getFileReference() <em>File Reference</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getFileReference()
+	 * @generated
+	 * @ordered
+	 */
+	protected IFileReference fileReference;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected FileReferenceCellImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<NamedStyle> getNamedStyles() {
+		if (namedStyles == null) {
+			namedStyles = new EObjectContainmentEList<>(NamedStyle.class, this, BuiltInTypesPackage.FILE_REFERENCE_CELL__NAMED_STYLES);
+		}
+		return namedStyles;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public CellLocation getLocation() {
+		return location;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setLocation(CellLocation newLocation) {
+		CellLocation oldLocation = location;
+		location = newLocation == null ? LOCATION_EDEFAULT : newLocation;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, BuiltInTypesPackage.FILE_REFERENCE_CELL__LOCATION, oldLocation, location));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public IFileReference getFileReference() {
+		return fileReference;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public NotificationChain basicSetFileReference(IFileReference newFileReference, NotificationChain msgs) {
+		IFileReference oldFileReference = fileReference;
+		fileReference = newFileReference;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE, oldFileReference, newFileReference);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setFileReference(IFileReference newFileReference) {
+		if (newFileReference != fileReference) {
+			NotificationChain msgs = null;
+			if (fileReference != null) {
+				msgs = ((InternalEObject) fileReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE, null, msgs);
+			}
+			if (newFileReference != null) {
+				msgs = ((InternalEObject) newFileReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE, null, msgs);
+			}
+			msgs = basicSetFileReference(newFileReference, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		} else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE, newFileReference, newFileReference));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public NamedStyle getNamedStyle(final String name) {
+		return org.eclipse.papyrus.model2doc.core.styles.internal.operations.NamedStyleOperations.INSTANCE.getNamedStyle(getNamedStyles(), name);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__NAMED_STYLES:
+			return ((InternalEList<?>) getNamedStyles()).basicRemove(otherEnd, msgs);
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE:
+			return basicSetFileReference(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__NAMED_STYLES:
+			return getNamedStyles();
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__LOCATION:
+			return getLocation();
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE:
+			return getFileReference();
+		}
+		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 BuiltInTypesPackage.FILE_REFERENCE_CELL__NAMED_STYLES:
+			getNamedStyles().clear();
+			getNamedStyles().addAll((Collection<? extends NamedStyle>) newValue);
+			return;
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__LOCATION:
+			setLocation((CellLocation) newValue);
+			return;
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE:
+			setFileReference((IFileReference) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__NAMED_STYLES:
+			getNamedStyles().clear();
+			return;
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__LOCATION:
+			setLocation(LOCATION_EDEFAULT);
+			return;
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE:
+			setFileReference((IFileReference) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__NAMED_STYLES:
+			return namedStyles != null && !namedStyles.isEmpty();
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__LOCATION:
+			return location != LOCATION_EDEFAULT;
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE:
+			return fileReference != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL___GET_NAMED_STYLE__STRING:
+			return getNamedStyle((String) arguments.get(0));
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (location: "); //$NON-NLS-1$
+		result.append(location);
+		result.append(')');
+		return result.toString();
+	}
+
+} // FileReferenceCellImpl
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/util/BuiltInTypesAdapterFactory.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/util/BuiltInTypesAdapterFactory.java
index 4e3c8f7..42d8320 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/util/BuiltInTypesAdapterFactory.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/util/BuiltInTypesAdapterFactory.java
@@ -144,6 +144,11 @@
 		}
 
 		@Override
+		public Adapter caseFileReferenceCell(FileReferenceCell object) {
+			return createFileReferenceCellAdapter();
+		}
+
+		@Override
 		public Adapter caseStyledElement(StyledElement object) {
 			return createStyledElementAdapter();
 		}
@@ -160,7 +165,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param target
-	 *                   the object to adapt.
+	 *            the object to adapt.
 	 * @return the adapter for the <code>target</code>.
 	 * @generated
 	 */
@@ -351,6 +356,21 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell <em>File Reference Cell</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell
+	 * @generated
+	 */
+	public Adapter createFileReferenceCellAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.core.styles.StyledElement <em>Styled Element</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/util/BuiltInTypesSwitch.java b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/util/BuiltInTypesSwitch.java
index 1a4628d..562c684 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/util/BuiltInTypesSwitch.java
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.builtintypes/src-gen/org/eclipse/papyrus/model2doc/core/builtintypes/util/BuiltInTypesSwitch.java
@@ -64,7 +64,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param ePackage
-	 *                     the package in question.
+	 *            the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
@@ -204,6 +204,20 @@
 			}
 			return result;
 		}
+		case BuiltInTypesPackage.FILE_REFERENCE_CELL: {
+			FileReferenceCell fileReferenceCell = (FileReferenceCell) theEObject;
+			T result = caseFileReferenceCell(fileReferenceCell);
+			if (result == null) {
+				result = caseCell(fileReferenceCell);
+			}
+			if (result == null) {
+				result = caseStyledElement(fileReferenceCell);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
 		default:
 			return defaultCase(theEObject);
 		}
@@ -217,7 +231,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Abstract Table</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -234,7 +248,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Row</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -251,7 +265,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Cell</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -268,7 +282,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Basic Table</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -285,7 +299,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Basic Row</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -302,7 +316,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Text Cell</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -319,7 +333,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Abstract List</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -336,7 +350,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>List Item</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -353,7 +367,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Text List Item</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -370,7 +384,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Basic List</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -387,7 +401,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>IFile Reference</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -404,7 +418,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Default File Reference</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -414,6 +428,23 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>File Reference Cell</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>File Reference Cell</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFileReferenceCell(FileReferenceCell object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Styled Element</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -421,7 +452,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Styled Element</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -438,7 +469,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            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
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.styles/model/Styles.ecore b/plugins/core/org.eclipse.papyrus.model2doc.core.styles/model/Styles.ecore
index fca1fbe..3e9bfec 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.styles/model/Styles.ecore
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.styles/model/Styles.ecore
@@ -69,7 +69,7 @@
     <eOperations name="getNamedStyle" ordered="false" lowerBound="1" eType="#//NamedStyle">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="This method return the NamedStyle corresponding to the given name"/>
-        <details key="body" value="return org.eclipse.papyrus.model2doc.core.styles.NamedStyleOperations.INSTANCE.getNamedStyle(getNamedStyles(), name);"/>
+        <details key="body" value="return org.eclipse.papyrus.model2doc.core.styles.internal.operations.NamedStyleOperations.INSTANCE.getNamedStyle(getNamedStyles(), name);"/>
       </eAnnotations>
       <eParameters name="name" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     </eOperations>
diff --git a/plugins/core/org.eclipse.papyrus.model2doc.core.styles/model/Styles.genmodel b/plugins/core/org.eclipse.papyrus.model2doc.core.styles/model/Styles.genmodel
index 942d2ca..c158094 100755
--- a/plugins/core/org.eclipse.papyrus.model2doc.core.styles/model/Styles.genmodel
+++ b/plugins/core/org.eclipse.papyrus.model2doc.core.styles/model/Styles.genmodel
@@ -68,7 +68,7 @@
       <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
           createChild="true" ecoreFeature="ecore:EReference Styles.ecore#//StyledElement/namedStyles"/>
       <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="Styles.ecore#//StyledElement/getNamedStyle"
-          body="return org.eclipse.papyrus.model2doc.core.styles.NamedStyleOperations.INSTANCE.getNamedStyle(getNamedStyles(), name);">
+          body="return org.eclipse.papyrus.model2doc.core.styles.internal.operations.NamedStyleOperations.INSTANCE.getNamedStyle(getNamedStyles(), name);">
         <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="Styles.ecore#//StyledElement/getNamedStyle/name"/>
       </genOperations>
     </genClasses>
diff --git a/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFDocument.java b/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFDocument.java
index 66019f0..70a9e98 100755
--- a/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFDocument.java
+++ b/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFDocument.java
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * Copyright (c) 2020 CEA LIST and others.
+ * Copyright (c) 2020, 2021 CEA LIST and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -9,7 +9,8 @@
  * SPDX-License-Identifier: EPL-2.0
  *
  * Contributors:
- *   Pauline DEVILLE (CEA LIST) <pauline.deville@cea.fr> - Initial API and implementation
+ *   Pauline DEVILLE (CEA LIST) pauline.deville@cea.fr - Initial API and implementation
+ *   Pauline DEVILLE (CEA LIST) pauline.deville@cea.fr - Bug 570290
  *
  *****************************************************************************/
 
@@ -24,6 +25,7 @@
 import java.util.List;
 
 import org.apache.commons.compress.utils.IOUtils;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackagePartName;
@@ -146,14 +148,53 @@
 	}
 
 	/**
-	 * This method insert a file in the document by using the altChunk element
+	 * Copy the file in the archive and add relation to be able to insert it by AltChunk in the document
+	 *
+	 * @param filePath
+	 *            the file path of the original file
+	 * @return the id of the importedFile
+	 * @throws IOException
+	 * @throws InvalidFormatException
+	 */
+	public String importFile(String filePath) throws IOException, InvalidFormatException {
+		String fileExtension = getFileExtension(filePath);
+
+		// Build a unique id
+		String id = "file" + fileIndex; //$NON-NLS-1$
+		fileIndex++;
+
+		// Build the path of the new file into the archive
+		StringBuilder partPathBuilder = new StringBuilder("/word/media/"); //$NON-NLS-1$
+		partPathBuilder.append(id);
+		partPathBuilder.append("."); //$NON-NLS-1$
+		partPathBuilder.append(fileExtension);
+
+		// Create the new file by coping the file in the archive
+		OPCPackage opcPackage = getPackage();
+		PackagePartName partName;
+		partName = PackagingURIHelper.createPartName(partPathBuilder.toString());
+
+		String contentType = Files.probeContentType(Paths.get(filePath.replaceFirst("/", ""))); //$NON-NLS-1$ //$NON-NLS-2$
+		if (contentType == null) {
+			contentType = "text/plain"; //$NON-NLS-1$
+		}
+		PackagePart packagePart = opcPackage.createPart(partName, contentType);
+		CustomXWPFPart part = new CustomXWPFPart(packagePart, id, filePath);
+
+		// Add the relation between the new file in the archive and the altChunk id
+		addRelation(part.getId(), new CustomXWPFGenericRelation(contentType), part);
+		return id;
+	}
+
+	/**
+	 * This method import and insert a file in the document by using the altChunk element
 	 *
 	 * @param filePath
 	 *            the path of the file to insert
 	 * @return the newly created CustomXWPFPart
 	 * @throws Exception
 	 */
-	public CustomXWPFPart insertFile(String filePath) throws Exception {
+	public void insertFile(String filePath) {
 		String fileExtension = getFileExtension(filePath);
 
 		// Check if the extension is supported
@@ -165,36 +206,18 @@
 			run.setText(NLS.bind("[The file {0} cannot be inserted]", filePath)); //$NON-NLS-1$
 			run.setColor("FF0000"); // red //$NON-NLS-1$
 			run.setItalic(true);
-			return null;
+			return;
 		}
 
-		// Build a unique id
-		String id = "file" + fileIndex; //$NON-NLS-1$
+		try {
+			String id = importFile(filePath);
 
-		// Build the path of the new file into the archive
-		StringBuilder partPathBuilder = new StringBuilder("/word/media/"); //$NON-NLS-1$
-		partPathBuilder.append(id);
-		partPathBuilder.append("."); //$NON-NLS-1$
-		partPathBuilder.append(fileExtension);
-
-		// Create the new file by coping the file in the archive
-		OPCPackage opcPackage = getPackage();
-		PackagePartName partName = PackagingURIHelper.createPartName(partPathBuilder.toString());
-		String contentType = Files.probeContentType(Paths.get(filePath.replaceFirst("/", ""))); //$NON-NLS-1$ //$NON-NLS-2$
-		if (contentType == null) {
-			contentType = "text/plain"; //$NON-NLS-1$
+			// Add the altChunk into the document
+			getDocument().getBody().addNewAltChunk().setId(id);
+		} catch (InvalidFormatException | IOException e) {
+			Activator.log.error(e);
 		}
-		PackagePart packagePart = opcPackage.createPart(partName, contentType);
-		CustomXWPFPart part = new CustomXWPFPart(packagePart, id, filePath);
 
-		// Add the relation between the new file in the archive and the altChunk id
-		addRelation(part.getId(), new CustomXWPFGenericRelation(contentType), part);
-
-		// Add the altChunk into the document
-		getDocument().getBody().addNewAltChunk().setId(id);
-
-		fileIndex++;
-		return part;
 	}
 
 	/**
diff --git a/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFPart.java b/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFPart.java
index 7aad9b9..49e4d5d 100755
--- a/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFPart.java
+++ b/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFPart.java
@@ -36,7 +36,7 @@
 	private String id;
 
 
-	public CustomXWPFPart(PackagePart part, String id, String filePath) throws Exception {
+	public CustomXWPFPart(PackagePart part, String id, String filePath) {
 		super(part);
 		this.filePath = filePath;
 		this.id = id;
diff --git a/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFTable.java b/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFTable.java
index 3211e71..4cc616a 100755
--- a/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFTable.java
+++ b/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/poi/CustomXWPFTable.java
@@ -133,5 +133,4 @@
 	}
 
 
-
 }
diff --git a/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/transcription/DocxTranscription.java b/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/transcription/DocxTranscription.java
index 48d683a..9412bff 100755
--- a/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/transcription/DocxTranscription.java
+++ b/plugins/docx/org.eclipse.papyrus.model2doc.docx/src/org/eclipse/papyrus/model2doc/docx/internal/transcription/DocxTranscription.java
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * Copyright (c) 2020 CEA LIST.
+ * Copyright (c) 2020, 2021 CEA LIST.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,6 +13,8 @@
  *   Vincent LORENZO (CEA LIST) vincent.lorenzo@cea.fr - bug 569059
  * 	 Pauline DEVILLE (CEA LIST) pauline.deville@cea.fr - Bug 569249
  *   Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - bug 569817
+ *   Pauline DEVILLE (CEA LIST) pauline.deville@cea.fr - Bug 570290
+ *
  *****************************************************************************/
 package org.eclipse.papyrus.model2doc.docx.internal.transcription;
 
@@ -36,6 +38,7 @@
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.apache.poi.xwpf.usermodel.XWPFRun;
 import org.apache.poi.xwpf.usermodel.XWPFTable;
+import org.apache.poi.xwpf.usermodel.XWPFTableCell;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -46,6 +49,7 @@
 import org.eclipse.papyrus.model2doc.core.builtintypes.AbstractTable;
 import org.eclipse.papyrus.model2doc.core.builtintypes.BasicList;
 import org.eclipse.papyrus.model2doc.core.builtintypes.Cell;
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.IFileReference;
 import org.eclipse.papyrus.model2doc.core.builtintypes.ListItem;
 import org.eclipse.papyrus.model2doc.core.builtintypes.Row;
@@ -296,6 +300,9 @@
 				if (cell instanceof TextCell) {
 					TextCell textCell = (TextCell) cell;
 					xwpfTable.getRow(rowIndex).getCell(cellIndex).setText(textCell.getText());
+				} else if (cell instanceof FileReferenceCell) {
+					XWPFTableCell xwpfCell = xwpfTable.getRow(rowIndex).getCell(cellIndex);
+					insertFileInTableCell(((FileReferenceCell) cell).getFileReference(), xwpfCell);
 				}
 				cellIndex++;
 			}
@@ -414,6 +421,31 @@
 		}
 	}
 
+	/**
+	 * Insert the contents of a file in table cell
+	 *
+	 * @param fileReference
+	 *            a reference to a file
+	 * @param cell
+	 *            the cell receiving the file
+	 */
+	private void insertFileInTableCell(IFileReference fileReference, XWPFTableCell xwpfCell) {
+		final URL url = fileReference.getFileAccessor().createInputFileURL();
+		if (url != null) {
+			final String path = url.toString().replace(ECORE_FILE_PREFIX, EMPTY_STRING);
+			try {
+				for (int i = 0; i < xwpfCell.getParagraphs().size(); i++) {
+					// when the cell is created, a paragraph is also created, to avoid a useless blank line we remove it
+					xwpfCell.removeParagraph(i);
+				}
+				String id = document.importFile(path);
+				xwpfCell.getCTTc().addNewAltChunk().setId(id);
+			} catch (InvalidFormatException | IOException e) {
+				Activator.log.warn(NLS.bind("The {0} file can not be inserted", fileReference.getFilePath())); //$NON-NLS-1$
+			}
+		}
+	}
+
 	@Override
 	public void writeImage(String imagePath, String caption) {
 		Assert.isTrue(false == imagePath.endsWith("svg"));//$NON-NLS-1$
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/customIcons/ExtendedFileReferenceCell.gif b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/customIcons/ExtendedFileReferenceCell.gif
new file mode 100644
index 0000000..bf00c15
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/customIcons/ExtendedFileReferenceCell.gif
Binary files differ
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/customIcons/InsertedGeneratedFile.gif b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/customIcons/InsertedGeneratedFile.gif
new file mode 100644
index 0000000..e9babbd
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/customIcons/InsertedGeneratedFile.gif
Binary files differ
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/icons/full/obj16/ExtendedFileReferenceCell.gif b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/icons/full/obj16/ExtendedFileReferenceCell.gif
new file mode 100644
index 0000000..bf00c15
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/icons/full/obj16/ExtendedFileReferenceCell.gif
Binary files differ
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/icons/full/obj16/InsertedGeneratedFile.gif b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/icons/full/obj16/InsertedGeneratedFile.gif
new file mode 100644
index 0000000..e9babbd
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/icons/full/obj16/InsertedGeneratedFile.gif
Binary files differ
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/plugin.properties b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/plugin.properties
index a78bf01..feb1b6b 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/plugin.properties
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/plugin.properties
@@ -12,13 +12,16 @@
 
 pluginName = Papyrus-Model2Doc - DocumentStructure Edit Support (Incubation)
 providerName = Eclipse Modeling Project
+
 _UI_CreateChild_text = {0}
 _UI_CreateChild_text2 = {1} {0}
 _UI_CreateChild_text3 = {1}
 _UI_CreateChild_tooltip = Create New {0} Under {1} Feature
 _UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
 _UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
 _UI_PropertyDescriptor_description = The {0} of the {1}
+
 _UI_TextDocument_type = Text Document
 _UI_TextDocumentPart_type = Text Document Part
 _UI_Document_type = Document
@@ -31,6 +34,7 @@
 _UI_Title_type = Title
 _UI_Image_type = Image
 _UI_LeafBodyPart_type = Leaf Body Part
+_UI_IGeneratedFile_type = IGenerated File
 _UI_EMFDataSource_type = EMF Data Source
 _UI_TableOfFigures_type = Table Of Figures
 _UI_TableOfContents_type = Table Of Contents
@@ -41,8 +45,12 @@
 _UI_StringVersion_type = String Version
 _UI_InsertedFile_type = Inserted File
 _UI_EmptyLine_type = Empty Line
+_UI_ExtendedFileReferenceCell_type = Extended File Reference Cell
+_UI_InsertedGeneratedFile_type = Inserted Generated File
 _UI_Unknown_type = Object
+
 _UI_Unknown_datatype= Value
+
 _UI_TextDocument_mainTitle_feature = Main Title
 _UI_TextDocument_textDocumentPart_feature = Text Document Part
 _UI_Document_documentGeneratorConfiguration_feature = Document Generator Configuration
@@ -61,4 +69,6 @@
 _UI_ExtendedTextCell_dataSource_feature = Data Source
 _UI_ExtendedTextListItem_datasource_feature = Datasource
 _UI_StringVersion_version_feature = Version
+_UI_ExtendedFileReferenceCell_datasource_feature = Datasource
 _UI_Unknown_feature = Unspecified
+
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/BodyItemProvider.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/BodyItemProvider.java
index 678b494..271c47e 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/BodyItemProvider.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/BodyItemProvider.java
@@ -200,6 +200,9 @@
 
 		newChildDescriptors.add(createChildParameter(DocumentStructurePackage.Literals.BODY__BODY_PART,
 				DocumentStructureFactory.eINSTANCE.createEmptyLine()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructurePackage.Literals.BODY__BODY_PART,
+				DocumentStructureFactory.eINSTANCE.createInsertedGeneratedFile()));
 	}
 
 	/**
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/DocumentStructureItemProviderAdapterFactory.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/DocumentStructureItemProviderAdapterFactory.java
index 4e1051b..2494f4c 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/DocumentStructureItemProviderAdapterFactory.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/DocumentStructureItemProviderAdapterFactory.java
@@ -45,6 +45,7 @@
 
 import org.eclipse.papyrus.model2doc.core.builtintypes.AbstractList;
 import org.eclipse.papyrus.model2doc.core.builtintypes.BuiltInTypesPackage;
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.ListItem;
 import org.eclipse.papyrus.model2doc.core.builtintypes.Row;
 
@@ -493,6 +494,56 @@
 	}
 
 	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected ExtendedFileReferenceCellItemProvider extendedFileReferenceCellItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter createExtendedFileReferenceCellAdapter() {
+		if (extendedFileReferenceCellItemProvider == null) {
+			extendedFileReferenceCellItemProvider = new ExtendedFileReferenceCellItemProvider(this);
+		}
+
+		return extendedFileReferenceCellItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected InsertedGeneratedFileItemProvider insertedGeneratedFileItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Adapter createInsertedGeneratedFileAdapter() {
+		if (insertedGeneratedFileItemProvider == null) {
+			insertedGeneratedFileItemProvider = new InsertedGeneratedFileItemProvider(this);
+		}
+
+		return insertedGeneratedFileItemProvider;
+	}
+
+	/**
 	 * This returns the root adapter factory that contains this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -683,6 +734,12 @@
 		if (emptyLineItemProvider != null) {
 			emptyLineItemProvider.dispose();
 		}
+		if (extendedFileReferenceCellItemProvider != null) {
+			extendedFileReferenceCellItemProvider.dispose();
+		}
+		if (insertedGeneratedFileItemProvider != null) {
+			insertedGeneratedFileItemProvider.dispose();
+		}
 	}
 
 	/**
@@ -742,6 +799,9 @@
 				newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.ROW__CELLS,
 						DocumentStructureFactory.eINSTANCE.createExtendedTextCell()));
 
+				newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.ROW__CELLS,
+						DocumentStructureFactory.eINSTANCE.createExtendedFileReferenceCell()));
+
 				return null;
 			}
 
@@ -779,6 +839,26 @@
 			 *
 			 * @generated
 			 */
+			@Override
+			public Object caseFileReferenceCell(FileReferenceCell object) {
+				newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL__FILE_REFERENCE,
+						DocumentStructureFactory.eINSTANCE.createImage()));
+
+				newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL__FILE_REFERENCE,
+						DocumentStructureFactory.eINSTANCE.createInsertedFile()));
+
+				newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL__FILE_REFERENCE,
+						DocumentStructureFactory.eINSTANCE.createInsertedGeneratedFile()));
+
+				return null;
+			}
+
+			/**
+			 * <!-- begin-user-doc -->
+			 * <!-- end-user-doc -->
+			 *
+			 * @generated
+			 */
 			protected CommandParameter createChildParameter(Object feature, Object child) {
 				return new CommandParameter(null, feature, child);
 			}
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/ExtendedFileReferenceCellItemProvider.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/ExtendedFileReferenceCellItemProvider.java
new file mode 100644
index 0000000..7523edb
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/ExtendedFileReferenceCellItemProvider.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.emf.documentstructure.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.model2doc.core.builtintypes.BuiltInTypesPackage;
+import org.eclipse.papyrus.model2doc.core.builtintypes.CellLocation;
+
+import org.eclipse.papyrus.model2doc.core.builtintypes.provider.FileReferenceCellItemProvider;
+
+import org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructureFactory;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructurePackage;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ExtendedFileReferenceCellItemProvider extends FileReferenceCellItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public ExtendedFileReferenceCellItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(DocumentStructurePackage.Literals.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns ExtendedFileReferenceCell.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ExtendedFileReferenceCell")); //$NON-NLS-1$
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		CellLocation labelValue = ((ExtendedFileReferenceCell) object).getLocation();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ? getString("_UI_ExtendedFileReferenceCell_type") : //$NON-NLS-1$
+				getString("_UI_ExtendedFileReferenceCell_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ExtendedFileReferenceCell.class)) {
+		case DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL__FILE_REFERENCE,
+				DocumentStructureFactory.eINSTANCE.createImage()));
+
+		newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL__FILE_REFERENCE,
+				DocumentStructureFactory.eINSTANCE.createInsertedFile()));
+
+		newChildDescriptors.add(createChildParameter(BuiltInTypesPackage.Literals.FILE_REFERENCE_CELL__FILE_REFERENCE,
+				DocumentStructureFactory.eINSTANCE.createInsertedGeneratedFile()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructurePackage.Literals.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE,
+				DocumentStructureFactory.eINSTANCE.createEMFDataSource()));
+	}
+
+}
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/InsertedGeneratedFileItemProvider.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/InsertedGeneratedFileItemProvider.java
new file mode 100644
index 0000000..4bc4c62
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/InsertedGeneratedFileItemProvider.java
@@ -0,0 +1,127 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.emf.documentstructure.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class InsertedGeneratedFileItemProvider extends InsertedFileItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public InsertedGeneratedFileItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns InsertedGeneratedFile.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/InsertedGeneratedFile")); //$NON-NLS-1$
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((InsertedGeneratedFile) object).getFilePath();
+		return label == null || label.length() == 0 ? getString("_UI_InsertedGeneratedFile_type") : //$NON-NLS-1$
+				getString("_UI_InsertedGeneratedFile_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/ParagraphItemProvider.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/ParagraphItemProvider.java
index 18a7007..fa920fe 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/ParagraphItemProvider.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/ParagraphItemProvider.java
@@ -256,6 +256,9 @@
 
 		newChildDescriptors.add(createChildParameter(DocumentStructurePackage.Literals.COMPOSED_BODY_PART__SUB_BODY_PART,
 				DocumentStructureFactory.eINSTANCE.createEmptyLine()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructurePackage.Literals.COMPOSED_BODY_PART__SUB_BODY_PART,
+				DocumentStructureFactory.eINSTANCE.createInsertedGeneratedFile()));
 	}
 
 	/**
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/TitleItemProvider.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/TitleItemProvider.java
index 10406a5..fa3421f 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/TitleItemProvider.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure.edit/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/provider/TitleItemProvider.java
@@ -256,6 +256,9 @@
 
 		newChildDescriptors.add(createChildParameter(DocumentStructurePackage.Literals.COMPOSED_BODY_PART__SUB_BODY_PART,
 				DocumentStructureFactory.eINSTANCE.createEmptyLine()));
+
+		newChildDescriptors.add(createChildParameter(DocumentStructurePackage.Literals.COMPOSED_BODY_PART__SUB_BODY_PART,
+				DocumentStructureFactory.eINSTANCE.createInsertedGeneratedFile()));
 	}
 
 	/**
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.ecore b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.ecore
index 05dfeb0..6645b7b 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.ecore
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.ecore
@@ -59,7 +59,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" ordered="false"
         lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Image" eSuperTypes="../../org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.ecore#//DefaultFileReference #//LeafBodyPart">
+  <eClassifiers xsi:type="ecore:EClass" name="Image" eSuperTypes="../../org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.ecore#//DefaultFileReference #//LeafBodyPart #//IGeneratedFile">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="This object represents an image inserted in the document."/>
     </eAnnotations>
@@ -72,6 +72,12 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LeafBodyPart" abstract="true" interface="true"
       eSuperTypes="#//BodyPart"/>
+  <eClassifiers xsi:type="ecore:EClass" name="IGeneratedFile" abstract="true" interface="true"
+      eSuperTypes="../../org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.ecore#//IFileReference">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Generated files that could be deleted at the end of the process."/>
+    </eAnnotations>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="EMFDataSource" eSuperTypes="#//DataSource">
     <eStructuralFeatures xsi:type="ecore:EReference" name="eobject" ordered="false"
         lowerBound="1" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
@@ -137,4 +143,16 @@
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="EmptyLine" eSuperTypes="#//LeafBodyPart"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ExtendedFileReferenceCell" eSuperTypes="../../org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.ecore#//FileReferenceCell">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="Insert a file into the cell"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datasource" ordered="false"
+        eType="#//DataSource" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InsertedGeneratedFile" eSuperTypes="#//InsertedFile #//IGeneratedFile">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="This element reference a generated file which will be inserted in the final document."/>
+    </eAnnotations>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.genmodel b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.genmodel
index 0581789..0287521 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.genmodel
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.genmodel
@@ -84,6 +84,7 @@
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute documentstructure.ecore#//Image/caption"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="documentstructure.ecore#//LeafBodyPart"/>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="documentstructure.ecore#//IGeneratedFile"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="documentstructure.ecore#//EMFDataSource">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference documentstructure.ecore#//EMFDataSource/eobject"/>
@@ -111,5 +112,10 @@
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="documentstructure.ecore#//InsertedFile"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="documentstructure.ecore#//EmptyLine"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="documentstructure.ecore#//ExtendedFileReferenceCell">
+      <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+          createChild="true" ecoreFeature="ecore:EReference documentstructure.ecore#//ExtendedFileReferenceCell/datasource"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="documentstructure.ecore#//InsertedGeneratedFile"/>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.notation b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.notation
index f62740a..8e01608 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.notation
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.notation
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
   <notation:Diagram xmi:id="_-L-nQB4fEemmq_cjeiIGww" type="PapyrusUMLClassDiagram" name="NewClassDiagram" measurementUnit="Pixel">
-    <children xmi:type="notation:Shape" xmi:id="_A-LCEB4gEemmq_cjeiIGww" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_A-LCEB4gEemmq_cjeiIGww" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_A-LpIB4gEemmq_cjeiIGww" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_A-LpIR4gEemmq_cjeiIGww" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_A-LpIh4gEemmq_cjeiIGww" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_A-LpIx4gEemmq_cjeiIGww" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="__xMFAEomEem4wpUXttaNpQ" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="__xMFAEomEem4wpUXttaNpQ" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_dNLh0EmLEem4wpUXttaNpQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="__xMFAUomEem4wpUXttaNpQ"/>
         </children>
@@ -31,7 +31,7 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_A-JM4B4gEemmq_cjeiIGww"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-LCER4gEemmq_cjeiIGww" x="360" y="-220" width="161"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_CWLW0B4gEemmq_cjeiIGww" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_CWLW0B4gEemmq_cjeiIGww" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_CWLW0h4gEemmq_cjeiIGww" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_CWLW0x4gEemmq_cjeiIGww" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_CWLW1B4gEemmq_cjeiIGww" y="15"/>
@@ -57,7 +57,7 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_CWI6kB4gEemmq_cjeiIGww"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CWLW0R4gEemmq_cjeiIGww" x="880" y="20"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_P0LNAB4gEemmq_cjeiIGww" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_P0LNAB4gEemmq_cjeiIGww" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_P0L0EB4gEemmq_cjeiIGww" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_P0L0ER4gEemmq_cjeiIGww" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_P0L0Eh4gEemmq_cjeiIGww" y="15"/>
@@ -83,13 +83,13 @@
       <element xmi:type="uml:Interface" href="documentstructure.uml#_P0JX0B4gEemmq_cjeiIGww"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P0LNAR4gEemmq_cjeiIGww" x="1140" y="20" width="121"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_YYTKMR4gEemmq_cjeiIGww" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_YYTKMR4gEemmq_cjeiIGww" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_YYTKMx4gEemmq_cjeiIGww" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_YYTKNB4gEemmq_cjeiIGww" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_YYTKNR4gEemmq_cjeiIGww" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_YYTKNh4gEemmq_cjeiIGww" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_NWBH8EwUEem4wpUXttaNpQ" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_NWBH8EwUEem4wpUXttaNpQ" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_NSocwEwUEem4wpUXttaNpQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_NWBH8UwUEem4wpUXttaNpQ"/>
         </children>
@@ -113,13 +113,13 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_YYTKMB4gEemmq_cjeiIGww"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YYTKMh4gEemmq_cjeiIGww" x="1440" y="560" height="121"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_Zd2dAB4gEemmq_cjeiIGww" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_Zd2dAB4gEemmq_cjeiIGww" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_Zd3EEB4gEemmq_cjeiIGww" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_Zd3EER4gEemmq_cjeiIGww" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_Zd3EEh4gEemmq_cjeiIGww" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_Zd3EEx4gEemmq_cjeiIGww" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_EqvZ4EwUEem4wpUXttaNpQ" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_EqvZ4EwUEem4wpUXttaNpQ" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_EnJTUEwUEem4wpUXttaNpQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_EqvZ4UwUEem4wpUXttaNpQ"/>
         </children>
@@ -129,7 +129,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zd3EFx4gEemmq_cjeiIGww"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_Zd3EGB4gEemmq_cjeiIGww" type="Class_OperationCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_TR4CYEwUEem4wpUXttaNpQ" type="Operation_ClassOperationLabel">
+        <children xmi:type="notation:Shape" xmi:id="_TR4CYEwUEem4wpUXttaNpQ" type="Operation_ClassOperationLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Operation" href="documentstructure.uml#_TPxJkEwUEem4wpUXttaNpQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_TR4CYUwUEem4wpUXttaNpQ"/>
         </children>
@@ -145,15 +145,15 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zd3rJB4gEemmq_cjeiIGww"/>
       </children>
       <element xmi:type="uml:Class" href="documentstructure.uml#_Zd0n0B4gEemmq_cjeiIGww"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zd2dAR4gEemmq_cjeiIGww" x="1240" y="560" height="121"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zd2dAR4gEemmq_cjeiIGww" x="1240" y="560" width="141" height="121"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_bYhZ8B4gEemmq_cjeiIGww" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_bYhZ8B4gEemmq_cjeiIGww" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_bYhZ8h4gEemmq_cjeiIGww" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_bYhZ8x4gEemmq_cjeiIGww" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_bYhZ9B4gEemmq_cjeiIGww" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_bYhZ9R4gEemmq_cjeiIGww" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_BfmDgFwuEemF3-UZXrtb4g" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_BfmDgFwuEemF3-UZXrtb4g" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_BcdP8FwuEemF3-UZXrtb4g"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_BfmDgVwuEemF3-UZXrtb4g"/>
         </children>
@@ -177,17 +177,17 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_bYgy4B4gEemmq_cjeiIGww"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bYhZ8R4gEemmq_cjeiIGww" x="1040" y="560" height="121"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_Tuj3kB4jEemmq_cjeiIGww" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_Tuj3kB4jEemmq_cjeiIGww" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_Tuj3kh4jEemmq_cjeiIGww" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_Tuj3kx4jEemmq_cjeiIGww" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_Tuj3lB4jEemmq_cjeiIGww" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_Tuj3lR4jEemmq_cjeiIGww" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_pb8KAB4jEemmq_cjeiIGww" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_pb8KAB4jEemmq_cjeiIGww" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_pbjvgB4jEemmq_cjeiIGww"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_pb8KAR4jEemmq_cjeiIGww"/>
         </children>
-        <children xmi:type="notation:Shape" xmi:id="_uWNroB4jEemmq_cjeiIGww" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_uWNroB4jEemmq_cjeiIGww" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_rt3wYB4jEemmq_cjeiIGww"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_uWNroR4jEemmq_cjeiIGww"/>
         </children>
@@ -211,7 +211,7 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_TufmIB4jEemmq_cjeiIGww"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tuj3kR4jEemmq_cjeiIGww" x="1100" y="-480"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_VMFlgB4jEemmq_cjeiIGww" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_VMFlgB4jEemmq_cjeiIGww" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_VMGMkR4jEemmq_cjeiIGww" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_VMGMkh4jEemmq_cjeiIGww" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_VMGMkx4jEemmq_cjeiIGww" y="15"/>
@@ -237,7 +237,7 @@
       <element xmi:type="uml:Interface" href="documentstructure.uml#_VMCiMB4jEemmq_cjeiIGww"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VMGMkB4jEemmq_cjeiIGww" x="1100" y="-220" width="201"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_gjW_wB4jEemmq_cjeiIGww" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_gjW_wB4jEemmq_cjeiIGww" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_gjXm0B4jEemmq_cjeiIGww" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_gjXm0R4jEemmq_cjeiIGww" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_gjXm0h4jEemmq_cjeiIGww" y="15"/>
@@ -263,7 +263,7 @@
       <element xmi:type="uml:Class" href="pathmap://ECORE_METAMODEL_LIBRARY/Ecore.uml#_SeWijsX_EduPJbEsMYXjUQ"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gjW_wR4jEemmq_cjeiIGww" x="1380" y="-480" width="141"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_hbStUB4jEemmq_cjeiIGww" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_hbStUB4jEemmq_cjeiIGww" type="Class_Shape" fontName="Segoe UI" italic="true" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_hbTUYR4jEemmq_cjeiIGww" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_hbTUYh4jEemmq_cjeiIGww" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_hbTUYx4jEemmq_cjeiIGww" y="15"/>
@@ -289,7 +289,7 @@
       <element xmi:type="uml:Class" href="pathmap://ECORE_METAMODEL_LIBRARY/Ecore.uml#_SeWiSMX_EduPJbEsMYXjUQ"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hbTUYB4jEemmq_cjeiIGww" x="1560" y="-480" width="141" height="101"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_zPiKAB4uEemmq_cjeiIGww" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_zPiKAB4uEemmq_cjeiIGww" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_zPixEB4uEemmq_cjeiIGww" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_zPixER4uEemmq_cjeiIGww" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_zPixEh4uEemmq_cjeiIGww" y="15"/>
@@ -315,13 +315,13 @@
       <element xmi:type="uml:Interface" href="documentstructure.uml#_zPfGsB4uEemmq_cjeiIGww"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPiKAR4uEemmq_cjeiIGww" x="360" y="-580" width="161" height="201"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_ZoOTEEUGEemuabBpL8rs_Q" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_ZoOTEEUGEemuabBpL8rs_Q" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_ZoWO4EUGEemuabBpL8rs_Q" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_ZoWO4UUGEemuabBpL8rs_Q" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ZoW18EUGEemuabBpL8rs_Q" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_ZoW18UUGEemuabBpL8rs_Q" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_q3afMEl1Eem4wpUXttaNpQ" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_q3afMEl1Eem4wpUXttaNpQ" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_qq5tMEl1Eem4wpUXttaNpQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_q3afMUl1Eem4wpUXttaNpQ"/>
         </children>
@@ -345,7 +345,7 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_ZnvK4EUGEemuabBpL8rs_Q"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZoOTEUUGEemuabBpL8rs_Q" x="680" y="20" width="161" height="101"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_5oejgEUGEemuabBpL8rs_Q" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_5oejgEUGEemuabBpL8rs_Q" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_5oejgkUGEemuabBpL8rs_Q" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_5ofKkEUGEemuabBpL8rs_Q" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_5ofKkUUGEemuabBpL8rs_Q" y="15"/>
@@ -371,12 +371,12 @@
       <element xmi:type="uml:Interface" href="documentstructure.uml#_5oa5IEUGEemuabBpL8rs_Q"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5oejgUUGEemuabBpL8rs_Q" x="760" y="-220" width="201" height="101"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_PPTFgEUIEemuabBpL8rs_Q" type="Comment_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_PPTFgEUIEemuabBpL8rs_Q" type="Comment_Shape" fontName="Segoe UI" fillColor="13434879" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_PPU6sEUIEemuabBpL8rs_Q" type="Comment_BodyLabel"/>
       <element xmi:type="uml:Comment" href="documentstructure.uml#__h1uIEUHEemuabBpL8rs_Q"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PPTFgUUIEemuabBpL8rs_Q" x="1400" y="-220" width="201" height="81"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_9LKz8FCHEem6oL2ItSt_AQ" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_9LKz8FCHEem6oL2ItSt_AQ" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_9LOeUFCHEem6oL2ItSt_AQ" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_9LOeUVCHEem6oL2ItSt_AQ" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_9LPFYFCHEem6oL2ItSt_AQ" y="15"/>
@@ -402,7 +402,7 @@
       <element xmi:type="uml:Interface" href="pathmap://GENERATOR_CONFIGURATION/generatorconfiguration.uml#_cN08EFB6EemNlsOH2YnpzQ"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9LKz8VCHEem6oL2ItSt_AQ" x="760" y="-480" width="201" height="101"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_qyWpAG_VEemJ-foOn68QUw" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_qyWpAG_VEemJ-foOn68QUw" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_qyXQEG_VEemJ-foOn68QUw" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_qyXQEW_VEemJ-foOn68QUw" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_qyXQEm_VEemJ-foOn68QUw" y="15"/>
@@ -428,7 +428,7 @@
       <element xmi:type="uml:Interface" href="documentstructure.uml#_qySXkG_VEemJ-foOn68QUw"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qyWpAW_VEemJ-foOn68QUw" x="1320" y="200" width="158"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_vCawAG_VEemJ-foOn68QUw" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_vCawAG_VEemJ-foOn68QUw" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_vCawAm_VEemJ-foOn68QUw" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_vCbXEG_VEemJ-foOn68QUw" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_vCbXEW_VEemJ-foOn68QUw" y="15"/>
@@ -454,7 +454,7 @@
       <element xmi:type="uml:Interface" href="documentstructure.uml#_vCXFoG_VEemJ-foOn68QUw"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vCawAW_VEemJ-foOn68QUw" x="920" y="200" width="161" height="101"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_8hRg8HDJEemmSqLtBrVBMA" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_8hRg8HDJEemmSqLtBrVBMA" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_8hT9MHDJEemmSqLtBrVBMA" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_8hT9MXDJEemmSqLtBrVBMA" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_8hT9MnDJEemmSqLtBrVBMA" y="15"/>
@@ -480,17 +480,17 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_8hMBYHDJEemmSqLtBrVBMA"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8hRg8XDJEemmSqLtBrVBMA" x="800" y="560" width="160" height="121"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="__m6cMHDJEemmSqLtBrVBMA" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="__m6cMHDJEemmSqLtBrVBMA" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="__m7DQHDJEemmSqLtBrVBMA" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="__m7DQXDJEemmSqLtBrVBMA" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="__m7DQnDJEemmSqLtBrVBMA" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="__m7DQ3DJEemmSqLtBrVBMA" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_bfiv8HDKEemmSqLtBrVBMA" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_bfiv8HDKEemmSqLtBrVBMA" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_oRLSoHAKEemJ-foOn68QUw"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_bfiv8XDKEemmSqLtBrVBMA"/>
         </children>
-        <children xmi:type="notation:Shape" xmi:id="_bfjXAHDKEemmSqLtBrVBMA" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_bfjXAHDKEemmSqLtBrVBMA" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_eFJHAHALEemJ-foOn68QUw"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_bfjXAXDKEemmSqLtBrVBMA"/>
         </children>
@@ -500,15 +500,15 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="__m7DR3DJEemmSqLtBrVBMA"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="__m7DSHDJEemmSqLtBrVBMA" type="Class_OperationCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_bfjXAnDKEemmSqLtBrVBMA" type="Operation_ClassOperationLabel">
+        <children xmi:type="notation:Shape" xmi:id="_bfjXAnDKEemmSqLtBrVBMA" type="Operation_ClassOperationLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Operation" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_wrfzkHAKEemJ-foOn68QUw"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_bfjXA3DKEemmSqLtBrVBMA"/>
         </children>
-        <children xmi:type="notation:Shape" xmi:id="_bfjXBHDKEemmSqLtBrVBMA" type="Operation_ClassOperationLabel">
+        <children xmi:type="notation:Shape" xmi:id="_bfjXBHDKEemmSqLtBrVBMA" type="Operation_ClassOperationLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Operation" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_y91poHAKEemJ-foOn68QUw"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_bfjXBXDKEemmSqLtBrVBMA"/>
         </children>
-        <children xmi:type="notation:Shape" xmi:id="_bfj-EHDKEemmSqLtBrVBMA" type="Operation_ClassOperationLabel">
+        <children xmi:type="notation:Shape" xmi:id="_bfj-EHDKEemmSqLtBrVBMA" type="Operation_ClassOperationLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Operation" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_qn5QIHC_EemO3N3fNOfMKQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_bfj-EXDKEemmSqLtBrVBMA"/>
         </children>
@@ -526,13 +526,13 @@
       <element xmi:type="uml:Class" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_54knIHAKEemJ-foOn68QUw"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="__m6cMXDJEemmSqLtBrVBMA" x="540" y="200" width="241" height="141"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_FCAL4HDKEemmSqLtBrVBMA" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_FCAL4HDKEemmSqLtBrVBMA" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_FCAy8HDKEemmSqLtBrVBMA" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_FCAy8XDKEemmSqLtBrVBMA" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_FCAy8nDKEemmSqLtBrVBMA" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_FCAy83DKEemmSqLtBrVBMA" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_iVbCoHDKEemmSqLtBrVBMA" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_iVbCoHDKEemmSqLtBrVBMA" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_Y5VwgHALEemJ-foOn68QUw"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_iVbCoXDKEemmSqLtBrVBMA"/>
         </children>
@@ -554,9 +554,9 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FCBaCXDKEemmSqLtBrVBMA"/>
       </children>
       <element xmi:type="uml:Class" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_XyQMoHALEemJ-foOn68QUw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FCAL4XDKEemmSqLtBrVBMA" x="260" y="200" width="241" height="141"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FCAL4XDKEemmSqLtBrVBMA" x="120" y="200" width="181" height="141"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_GGa2QHDKEemmSqLtBrVBMA" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_GGa2QHDKEemmSqLtBrVBMA" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_GGbdUHDKEemmSqLtBrVBMA" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_GGbdUXDKEemmSqLtBrVBMA" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_GGbdUnDKEemmSqLtBrVBMA" y="15"/>
@@ -580,9 +580,9 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GGbdYXDKEemmSqLtBrVBMA"/>
       </children>
       <element xmi:type="uml:Class" href="documentstructure.uml#_GGZoIHDKEemmSqLtBrVBMA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GGa2QXDKEemmSqLtBrVBMA" x="260" y="560" width="241" height="121"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GGa2QXDKEemmSqLtBrVBMA" x="120" y="560" width="181" height="121"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_05ZUIHDKEemmSqLtBrVBMA" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_05ZUIHDKEemmSqLtBrVBMA" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_05ZUInDKEemmSqLtBrVBMA" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_05ZUI3DKEemmSqLtBrVBMA" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_05ZUJHDKEemmSqLtBrVBMA" y="15"/>
@@ -606,15 +606,15 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_05ZUM3DKEemmSqLtBrVBMA"/>
       </children>
       <element xmi:type="uml:Interface" href="documentstructure.uml#_VMCiMB4jEemmq_cjeiIGww"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_05ZUIXDKEemmSqLtBrVBMA" x="20" y="206" width="161" height="135"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_05ZUIXDKEemmSqLtBrVBMA" x="-160" y="200" width="161" height="141"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_zLbZMHsMEemUDJPY7edDLg" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_zLbZMHsMEemUDJPY7edDLg" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_zLj8EHsMEemUDJPY7edDLg" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_zLj8EXsMEemUDJPY7edDLg" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_zLkjIHsMEemUDJPY7edDLg" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_zLkjIXsMEemUDJPY7edDLg" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_8APdwHsMEemUDJPY7edDLg" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_8APdwHsMEemUDJPY7edDLg" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_rUG70HsFEemo4rKYxRobdQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_8APdwXsMEemUDJPY7edDLg"/>
         </children>
@@ -636,15 +636,15 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zLlKNHsMEemUDJPY7edDLg"/>
       </children>
       <element xmi:type="uml:Class" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_d6G00HsFEemo4rKYxRobdQ"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zLbZMXsMEemUDJPY7edDLg" x="260" y="760" width="241" height="121"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zLbZMXsMEemUDJPY7edDLg" x="80" y="760" width="241" height="121"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_04LO4HsMEemUDJPY7edDLg" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_04LO4HsMEemUDJPY7edDLg" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_04L18HsMEemUDJPY7edDLg" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_04L18XsMEemUDJPY7edDLg" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_04L18nsMEemUDJPY7edDLg" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_04L183sMEemUDJPY7edDLg" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_9PpQIHsMEemUDJPY7edDLg" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_9PpQIHsMEemUDJPY7edDLg" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_R3n6YHsFEemo4rKYxRobdQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_9PpQIXsMEemUDJPY7edDLg"/>
         </children>
@@ -668,7 +668,7 @@
       <element xmi:type="uml:Class" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_iB5woHsFEemo4rKYxRobdQ"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_04LO4XsMEemUDJPY7edDLg" x="540" y="760" width="221" height="121"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="__Wm8oHsMEemUDJPY7edDLg" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="__Wm8oHsMEemUDJPY7edDLg" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="__WnjsXsMEemUDJPY7edDLg" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="__WnjsnsMEemUDJPY7edDLg" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="__Wnjs3sMEemUDJPY7edDLg" y="15"/>
@@ -694,7 +694,7 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#__WYTIHsMEemUDJPY7edDLg"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="__WnjsHsMEemUDJPY7edDLg" x="800" y="940" width="161"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_DBeE0HsNEemUDJPY7edDLg" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_DBeE0HsNEemUDJPY7edDLg" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_DBer4HsNEemUDJPY7edDLg" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_DBer4XsNEemUDJPY7edDLg" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_DBer4nsNEemUDJPY7edDLg" y="15"/>
@@ -718,9 +718,9 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DBfS_nsNEemUDJPY7edDLg"/>
       </children>
       <element xmi:type="uml:Class" href="documentstructure.uml#_DBbBgHsNEemUDJPY7edDLg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DBeE0XsNEemUDJPY7edDLg" x="260" y="940" width="241"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DBeE0XsNEemUDJPY7edDLg" x="80" y="940" width="241"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_eVb2YIxSEem126L41vD09A" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_eVb2YIxSEem126L41vD09A" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_eVcdcIxSEem126L41vD09A" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_eVdEgIxSEem126L41vD09A" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_eVdEgYxSEem126L41vD09A" y="15"/>
@@ -746,7 +746,7 @@
       <element xmi:type="uml:Interface" href="pathmap://MODEL2DOC/AUTHOR/author.uml#_PbrtUIwlEemPH4WRSA0__A"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eVb2YYxSEem126L41vD09A" x="760" y="-580" width="201" height="81"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_8-_ZYIzxEem126L41vD09A" type="Interface_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_8-_ZYIzxEem126L41vD09A" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_8-_ZYozxEem126L41vD09A" type="Interface_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_8-_ZY4zxEem126L41vD09A" type="Interface_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_8-_ZZIzxEem126L41vD09A" y="15"/>
@@ -758,7 +758,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8-_ZaYzxEem126L41vD09A"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_8-_ZaozxEem126L41vD09A" type="Interface_OperationCompartment">
-        <children xmi:type="notation:Shape" xmi:id="__BEl4IzxEem126L41vD09A" type="Operation_InterfaceOperationLabel">
+        <children xmi:type="notation:Shape" xmi:id="__BEl4IzxEem126L41vD09A" type="Operation_InterfaceOperationLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Operation" href="documentstructure.uml#__AAO4IzxEem126L41vD09A"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="__BEl4YzxEem126L41vD09A"/>
         </children>
@@ -776,13 +776,13 @@
       <element xmi:type="uml:Interface" href="documentstructure.uml#_8-8WEIzxEem126L41vD09A"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8-_ZYYzxEem126L41vD09A" x="20" y="-580" width="161" height="141"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_LpkXcIzyEem126L41vD09A" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_LpkXcIzyEem126L41vD09A" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_Lpk-gIzyEem126L41vD09A" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_LpllkIzyEem126L41vD09A" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_LpllkYzyEem126L41vD09A" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_LpllkozyEem126L41vD09A" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_OOsmoIzyEem126L41vD09A" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_OOsmoIzyEem126L41vD09A" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_ONoPoIzyEem126L41vD09A"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_OOsmoYzyEem126L41vD09A"/>
         </children>
@@ -806,13 +806,13 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_LphUIIzyEem126L41vD09A"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LpkXcYzyEem126L41vD09A" x="20" y="-360" width="161"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_XM-SIJcXEemjzoOvLRrzSw" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_XM-SIJcXEemjzoOvLRrzSw" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_XNFm4JcXEemjzoOvLRrzSw" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_XNGN8JcXEemjzoOvLRrzSw" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_XNGN8ZcXEemjzoOvLRrzSw" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_XNGN8pcXEemjzoOvLRrzSw" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_uIEU4JcXEemjzoOvLRrzSw" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_uIEU4JcXEemjzoOvLRrzSw" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_B56cEJQVEemHKPZQudxUGA"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_uIEU4ZcXEemjzoOvLRrzSw"/>
         </children>
@@ -822,7 +822,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XNGN9pcXEemjzoOvLRrzSw"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_XNG1AJcXEemjzoOvLRrzSw" type="Class_OperationCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_S2FZsEUwEeuZlM4bILw9_g" type="Operation_ClassOperationLabel">
+        <children xmi:type="notation:Shape" xmi:id="_S2FZsEUwEeuZlM4bILw9_g" type="Operation_ClassOperationLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Operation" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_c4WUkELaEeuyx6IwESzSjg"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_S2FZsUUwEeuZlM4bILw9_g"/>
         </children>
@@ -840,13 +840,13 @@
       <element xmi:type="uml:Class" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_tL-NYJQUEemHKPZQudxUGA"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XM-SIZcXEemjzoOvLRrzSw" x="1040" y="760" width="161"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_fUhBAJcXEemjzoOvLRrzSw" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_fUhBAJcXEemjzoOvLRrzSw" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_fUhoEJcXEemjzoOvLRrzSw" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_fUhoEZcXEemjzoOvLRrzSw" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_fUiPIJcXEemjzoOvLRrzSw" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_fUiPIZcXEemjzoOvLRrzSw" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_uIE78JcXEemjzoOvLRrzSw" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_uIE78JcXEemjzoOvLRrzSw" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_B56cEJQVEemHKPZQudxUGA"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_uIE78ZcXEemjzoOvLRrzSw"/>
         </children>
@@ -870,13 +870,13 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_fUOtIJcXEemjzoOvLRrzSw"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fUhBAZcXEemjzoOvLRrzSw" x="1040" y="940" width="161" height="101"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_aWLU4Oj_Eem_UoEukOln_g" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_aWLU4Oj_Eem_UoEukOln_g" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_aWNxIOj_Eem_UoEukOln_g" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_aWNxIej_Eem_UoEukOln_g" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_aWNxIuj_Eem_UoEukOln_g" y="15"/>
       </children>
       <children xmi:type="notation:BasicCompartment" xmi:id="_aWTQsOj_Eem_UoEukOln_g" type="Class_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_gzk2IOj_Eem_UoEukOln_g" type="Property_ClassAttributeLabel">
+        <children xmi:type="notation:Shape" xmi:id="_gzk2IOj_Eem_UoEukOln_g" type="Property_ClassAttributeLabel" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
           <element xmi:type="uml:Property" href="documentstructure.uml#_Tk-G0ej_Eem_UoEukOln_g"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_gzk2Iej_Eem_UoEukOln_g"/>
         </children>
@@ -900,7 +900,7 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_Tk-G0Oj_Eem_UoEukOln_g"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aWLU4ej_Eem_UoEukOln_g" x="480" y="20" width="161"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_k_MmYDoHEeutb_jRObmUug" type="Class_Shape">
+    <children xmi:type="notation:Shape" xmi:id="_k_MmYDoHEeutb_jRObmUug" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_k_PCoDoHEeutb_jRObmUug" type="Class_NameLabel"/>
       <children xmi:type="notation:DecorationNode" xmi:id="_k_PCoToHEeutb_jRObmUug" type="Class_FloatingNameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_k_PCojoHEeutb_jRObmUug" y="15"/>
@@ -926,22 +926,178 @@
       <element xmi:type="uml:Class" href="documentstructure.uml#_k-65kDoHEeutb_jRObmUug"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k_MmYToHEeutb_jRObmUug" x="800" y="760" width="161"/>
     </children>
+    <children xmi:type="notation:Shape" xmi:id="_vJifAFTYEeuQxZMd2JwdqQ" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_vJjtIFTYEeuQxZMd2JwdqQ" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_vJkUMFTYEeuQxZMd2JwdqQ" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_vJkUMVTYEeuQxZMd2JwdqQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vJkUMlTYEeuQxZMd2JwdqQ" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vJkUM1TYEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vJkUNFTYEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vJkUNVTYEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vJkUNlTYEeuQxZMd2JwdqQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vJkUN1TYEeuQxZMd2JwdqQ" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vJkUOFTYEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vJkUOVTYEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vJkUOlTYEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vJkUO1TYEeuQxZMd2JwdqQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vJkUPFTYEeuQxZMd2JwdqQ" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vJkUPVTYEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vJkUPlTYEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vJkUP1TYEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vJkUQFTYEeuQxZMd2JwdqQ"/>
+      </children>
+      <element xmi:type="uml:Class" href="documentstructure.uml#_vJYuAFTYEeuQxZMd2JwdqQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vJifAVTYEeuQxZMd2JwdqQ" x="320" y="560" width="181" height="121"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_FfplYFTZEeuQxZMd2JwdqQ" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_FfqMcVTZEeuQxZMd2JwdqQ" type="Interface_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_FfqMclTZEeuQxZMd2JwdqQ" type="Interface_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_FfqMc1TZEeuQxZMd2JwdqQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_FfqMdFTZEeuQxZMd2JwdqQ" type="Interface_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_FfqMdVTZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_FfqMdlTZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_FfqMd1TZEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FfqMeFTZEeuQxZMd2JwdqQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_FfqMeVTZEeuQxZMd2JwdqQ" type="Interface_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_FfqMelTZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_FfqMe1TZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_FfqMfFTZEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FfqMfVTZEeuQxZMd2JwdqQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_FfqMflTZEeuQxZMd2JwdqQ" type="Interface_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_FfqMf1TZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_FfqMgFTZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_FfqMgVTZEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FfqMglTZEeuQxZMd2JwdqQ"/>
+      </children>
+      <element xmi:type="uml:Interface" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_EUUNQHALEemJ-foOn68QUw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FfqMcFTZEeuQxZMd2JwdqQ" x="240" y="-20" width="161" height="141"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_bS5PQFTZEeuQxZMd2JwdqQ" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_bS5PQlTZEeuQxZMd2JwdqQ" type="Interface_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_bS5PQ1TZEeuQxZMd2JwdqQ" type="Interface_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_bS5PRFTZEeuQxZMd2JwdqQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_bS5PRVTZEeuQxZMd2JwdqQ" type="Interface_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_bS5PRlTZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_bS5PR1TZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_bS5PSFTZEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bS5PSVTZEeuQxZMd2JwdqQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_bS5PSlTZEeuQxZMd2JwdqQ" type="Interface_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_bS5PS1TZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_bS5PTFTZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_bS5PTVTZEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bS5PTlTZEeuQxZMd2JwdqQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_bS5PT1TZEeuQxZMd2JwdqQ" type="Interface_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_bS5PUFTZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_bS5PUVTZEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_bS5PUlTZEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bS5PU1TZEeuQxZMd2JwdqQ"/>
+      </children>
+      <element xmi:type="uml:Interface" href="documentstructure.uml#_bS4BIFTZEeuQxZMd2JwdqQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bS5PQVTZEeuQxZMd2JwdqQ" x="1440" y="760" width="141"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_BnLpkFTaEeuQxZMd2JwdqQ" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_BnMQoFTaEeuQxZMd2JwdqQ" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BnMQoVTaEeuQxZMd2JwdqQ" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BnMQolTaEeuQxZMd2JwdqQ" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_BnMQo1TaEeuQxZMd2JwdqQ" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_BnMQpFTaEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_BnMQpVTaEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_BnMQplTaEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BnMQp1TaEeuQxZMd2JwdqQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_BnMQqFTaEeuQxZMd2JwdqQ" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_BnMQqVTaEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_BnMQqlTaEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_BnMQq1TaEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BnMQrFTaEeuQxZMd2JwdqQ"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_BnMQrVTaEeuQxZMd2JwdqQ" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_BnMQrlTaEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_BnMQr1TaEeuQxZMd2JwdqQ"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_BnMQsFTaEeuQxZMd2JwdqQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BnMQsVTaEeuQxZMd2JwdqQ"/>
+      </children>
+      <element xmi:type="uml:Class" href="documentstructure.uml#_BnLCgFTaEeuQxZMd2JwdqQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BnLpkVTaEeuQxZMd2JwdqQ" x="1440" y="940"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_x3BssFcMEeuBqtWKTOr8pw" type="Class_Shape" fontName="Segoe UI" fillColor="14538691" transparency="0" gradient="16777215, -1, 0" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_x3C60FcMEeuBqtWKTOr8pw" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_x3C60VcMEeuBqtWKTOr8pw" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_x3C60lcMEeuBqtWKTOr8pw" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_x3Dh4FcMEeuBqtWKTOr8pw" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_x3Dh4VcMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_x3Dh4lcMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_x3Dh41cMEeuBqtWKTOr8pw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x3Dh5FcMEeuBqtWKTOr8pw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_x3Dh5VcMEeuBqtWKTOr8pw" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_x3Dh5lcMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_x3Dh51cMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_x3Dh6FcMEeuBqtWKTOr8pw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x3Dh6VcMEeuBqtWKTOr8pw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_x3Dh6lcMEeuBqtWKTOr8pw" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_x3Dh61cMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_x3Dh7FcMEeuBqtWKTOr8pw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_x3Dh7VcMEeuBqtWKTOr8pw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x3Dh7lcMEeuBqtWKTOr8pw"/>
+      </children>
+      <element xmi:type="uml:Class" href="platform:/resource/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.uml#_aLJGMFcMEeuBqtWKTOr8pw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x3BssVcMEeuBqtWKTOr8pw" x="320" y="200" width="181" height="141"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_0mokMFmWEeuW5fxFuhFNyw" type="Interface_Shape" fontName="Segoe UI" fillColor="14012867" transparency="0" gradient="16777215, -1, 0" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_0mokMlmWEeuW5fxFuhFNyw" type="Interface_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_0mokM1mWEeuW5fxFuhFNyw" type="Interface_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_0mokNFmWEeuW5fxFuhFNyw" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0mpLQFmWEeuW5fxFuhFNyw" type="Interface_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0mpLQVmWEeuW5fxFuhFNyw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0mpLQlmWEeuW5fxFuhFNyw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0mpLQ1mWEeuW5fxFuhFNyw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0mpLRFmWEeuW5fxFuhFNyw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0mpLRVmWEeuW5fxFuhFNyw" type="Interface_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0mpLRlmWEeuW5fxFuhFNyw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0mpLR1mWEeuW5fxFuhFNyw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0mpLSFmWEeuW5fxFuhFNyw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0mpLSVmWEeuW5fxFuhFNyw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_0mpLSlmWEeuW5fxFuhFNyw" type="Interface_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_0mpLS1mWEeuW5fxFuhFNyw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_0mpLTFmWEeuW5fxFuhFNyw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_0mpLTVmWEeuW5fxFuhFNyw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0mpLTlmWEeuW5fxFuhFNyw"/>
+      </children>
+      <element xmi:type="uml:Interface" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_o1CCUJQUEemHKPZQudxUGA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0mokMVmWEeuW5fxFuhFNyw" x="1240" y="760" width="141"/>
+    </children>
     <styles xmi:type="notation:StringValueStyle" xmi:id="_-L-nQR4fEemmq_cjeiIGww" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="_-L-nQh4fEemmq_cjeiIGww"/>
     <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_-L-nQx4fEemmq_cjeiIGww" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
       <owner xmi:type="uml:Model" href="documentstructure.uml#_6m4v4B4fEemmq_cjeiIGww"/>
     </styles>
     <element xmi:type="uml:Model" href="documentstructure.uml#_6m4v4B4fEemmq_cjeiIGww"/>
-    <edges xmi:type="notation:Connector" xmi:id="_TVYC4B4gEemmq_cjeiIGww" type="Association_Edge" source="_CWLW0B4gEemmq_cjeiIGww" target="_P0LNAB4gEemmq_cjeiIGww" routing="Rectilinear">
+    <edges xmi:type="notation:Connector" xmi:id="_TVYC4B4gEemmq_cjeiIGww" type="Association_Edge" source="_CWLW0B4gEemmq_cjeiIGww" target="_P0LNAB4gEemmq_cjeiIGww" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_TVYC4x4gEemmq_cjeiIGww" type="Association_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NwQ3sB4kEemmq_cjeiIGww" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_TVYp8B4gEemmq_cjeiIGww" y="-20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_TVYp8R4gEemmq_cjeiIGww" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_TVYp8R4gEemmq_cjeiIGww" visible="false" type="Association_NameLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NwgIQB4kEemmq_cjeiIGww" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_TVYp8h4gEemmq_cjeiIGww" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_TVYp8x4gEemmq_cjeiIGww" type="Association_TargetRoleLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_TVYp8x4gEemmq_cjeiIGww" visible="false" type="Association_TargetRoleLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Nwwm8B4kEemmq_cjeiIGww" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_TVYp9B4gEemmq_cjeiIGww" x="36" y="-20"/>
       </children>
@@ -949,7 +1105,7 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NxAekB4kEemmq_cjeiIGww" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_TVYp9h4gEemmq_cjeiIGww" x="-36" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_TVYp9x4gEemmq_cjeiIGww" type="Association_SourceMultiplicityLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_TVYp9x4gEemmq_cjeiIGww" visible="false" type="Association_SourceMultiplicityLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NxPvIB4kEemmq_cjeiIGww" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_TVYp-B4gEemmq_cjeiIGww" x="36" y="20"/>
       </children>
@@ -957,13 +1113,13 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Nxe_sB4kEemmq_cjeiIGww" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_TVYp-h4gEemmq_cjeiIGww" x="-36" y="-20"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_TVYC4R4gEemmq_cjeiIGww"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_TVYC4R4gEemmq_cjeiIGww" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_TVO48B4gEemmq_cjeiIGww"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TVYC4h4gEemmq_cjeiIGww" points="[600, 360, -643984, -643984]$[840, 360, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TVszAB4gEemmq_cjeiIGww" id="(1.0,0.4)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TVtaEB4gEemmq_cjeiIGww" id="(0.0,0.38461538461538464)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_aXQp4B4jEemmq_cjeiIGww" type="InterfaceRealization_Edge" source="_Tuj3kB4jEemmq_cjeiIGww" target="_VMFlgB4jEemmq_cjeiIGww" routing="Rectilinear">
+    <edges xmi:type="notation:Connector" xmi:id="_aXQp4B4jEemmq_cjeiIGww" type="InterfaceRealization_Edge" source="_Tuj3kB4jEemmq_cjeiIGww" target="_VMFlgB4jEemmq_cjeiIGww" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_aXQp4x4jEemmq_cjeiIGww" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hoKEoB4jEemmq_cjeiIGww" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_aXQp5B4jEemmq_cjeiIGww" y="40"/>
@@ -972,22 +1128,22 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hoVq0B4jEemmq_cjeiIGww" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_aXQp5h4jEemmq_cjeiIGww" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_aXQp4R4jEemmq_cjeiIGww"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_aXQp4R4jEemmq_cjeiIGww" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_aW_kIB4jEemmq_cjeiIGww"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aXQp4h4jEemmq_cjeiIGww" points="[1200, -368, -643984, -643984]$[1200, -220, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aXodUB4jEemmq_cjeiIGww" id="(0.5025125628140703,1.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aXpEYB4jEemmq_cjeiIGww" id="(0.4975124378109453,0.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_mkcjAB4kEemmq_cjeiIGww" type="Association_Edge" source="_P0LNAB4gEemmq_cjeiIGww" target="_VMFlgB4jEemmq_cjeiIGww" routing="Rectilinear">
+    <edges xmi:type="notation:Connector" xmi:id="_mkcjAB4kEemmq_cjeiIGww" type="Association_Edge" source="_P0LNAB4gEemmq_cjeiIGww" target="_VMFlgB4jEemmq_cjeiIGww" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_mkdKEB4kEemmq_cjeiIGww" type="Association_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_A7PWQG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_mkdKER4kEemmq_cjeiIGww" y="-20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_mkdKEh4kEemmq_cjeiIGww" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_mkdKEh4kEemmq_cjeiIGww" visible="false" type="Association_NameLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_A-AWYG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_mkdKEx4kEemmq_cjeiIGww" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_mkdKFB4kEemmq_cjeiIGww" type="Association_TargetRoleLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_mkdKFB4kEemmq_cjeiIGww" visible="false" type="Association_TargetRoleLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BEvQgG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_mkdKFR4kEemmq_cjeiIGww" x="48" y="-20"/>
       </children>
@@ -995,7 +1151,7 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BHlJIG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_mkdKFx4kEemmq_cjeiIGww" x="-48" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_mkdKGB4kEemmq_cjeiIGww" type="Association_SourceMultiplicityLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_mkdKGB4kEemmq_cjeiIGww" visible="false" type="Association_SourceMultiplicityLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BKdeAG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_mkdKGR4kEemmq_cjeiIGww" x="48" y="20"/>
       </children>
@@ -1003,13 +1159,13 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BRyOAG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_mkdKGx4kEemmq_cjeiIGww" x="-48" y="-20"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_mkcjAR4kEemmq_cjeiIGww"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_mkcjAR4kEemmq_cjeiIGww" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_mkKPIB4kEemmq_cjeiIGww"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mkcjAh4kEemmq_cjeiIGww" points="[1200, 20, -643984, -643984]$[1200, -47, -643984, -643984]$[1200, -116, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mlGqUB4kEemmq_cjeiIGww" id="(0.49586776859504134,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mlGqUR4kEemmq_cjeiIGww" id="(0.4975124378109453,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_1ZrGUB4uEemmq_cjeiIGww" type="InterfaceRealization_Edge" source="_A-LCEB4gEemmq_cjeiIGww" target="_zPiKAB4uEemmq_cjeiIGww">
+    <edges xmi:type="notation:Connector" xmi:id="_1ZrGUB4uEemmq_cjeiIGww" type="InterfaceRealization_Edge" source="_A-LCEB4gEemmq_cjeiIGww" target="_zPiKAB4uEemmq_cjeiIGww" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_1ZrGUx4uEemmq_cjeiIGww" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Az6PcEUHEemuabBpL8rs_Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_1ZrGVB4uEemmq_cjeiIGww" y="40"/>
@@ -1018,22 +1174,22 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_A3jZUEUHEemuabBpL8rs_Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_1ZrGVh4uEemmq_cjeiIGww" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_1ZrGUR4uEemmq_cjeiIGww"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_1ZrGUR4uEemmq_cjeiIGww" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_1ZL-IB4uEemmq_cjeiIGww"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1ZrGUh4uEemmq_cjeiIGww" points="[320, 100, -643984, -643984]$[80, 100, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1agz0B4uEemmq_cjeiIGww" id="(0.4968944099378882,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1agz0R4uEemmq_cjeiIGww" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_LqILEEUHEemuabBpL8rs_Q" type="Association_Edge" source="_A-LCEB4gEemmq_cjeiIGww" target="_5oejgEUGEemuabBpL8rs_Q">
+    <edges xmi:type="notation:Connector" xmi:id="_LqILEEUHEemuabBpL8rs_Q" type="Association_Edge" source="_A-LCEB4gEemmq_cjeiIGww" target="_5oejgEUGEemuabBpL8rs_Q" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_LqILE0UHEemuabBpL8rs_Q" type="Association_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_UCSI0EUHEemuabBpL8rs_Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_LqILFEUHEemuabBpL8rs_Q" x="80" y="-20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_LqILFUUHEemuabBpL8rs_Q" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_LqILFUUHEemuabBpL8rs_Q" visible="false" type="Association_NameLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_UEhkgEUHEemuabBpL8rs_Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_LqILFkUHEemuabBpL8rs_Q" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_LqILF0UHEemuabBpL8rs_Q" type="Association_TargetRoleLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_LqILF0UHEemuabBpL8rs_Q" visible="false" type="Association_TargetRoleLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_UGU7UEUHEemuabBpL8rs_Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_LqILGEUHEemuabBpL8rs_Q" x="12" y="-20"/>
       </children>
@@ -1041,7 +1197,7 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_UIZX4EUHEemuabBpL8rs_Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_LqIyIEUHEemuabBpL8rs_Q" x="-65" y="27"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_LqIyIUUHEemuabBpL8rs_Q" type="Association_SourceMultiplicityLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_LqIyIUUHEemuabBpL8rs_Q" visible="false" type="Association_SourceMultiplicityLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_UPihsEUHEemuabBpL8rs_Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_LqIyIkUHEemuabBpL8rs_Q" x="12" y="20"/>
       </children>
@@ -1049,13 +1205,13 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_USzREEUHEemuabBpL8rs_Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_LqIyJEUHEemuabBpL8rs_Q" x="68" y="-20"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_LqILEUUHEemuabBpL8rs_Q"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_LqILEUUHEemuabBpL8rs_Q" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_Ln3hQEUHEemuabBpL8rs_Q"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LqILEkUHEemuabBpL8rs_Q" points="[521, -160, -643984, -643984]$[640, -160, -643984, -643984]$[760, -160, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lt530EUHEemuabBpL8rs_Q" id="(1.0,0.6)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lt530UUHEemuabBpL8rs_Q" id="(0.0,0.594059405940594)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_Z2dt8EUHEemuabBpL8rs_Q" type="InterfaceRealization_Edge" source="_ZoOTEEUGEemuabBpL8rs_Q" target="_5oejgEUGEemuabBpL8rs_Q" routing="Rectilinear">
+    <edges xmi:type="notation:Connector" xmi:id="_Z2dt8EUHEemuabBpL8rs_Q" type="InterfaceRealization_Edge" source="_ZoOTEEUGEemuabBpL8rs_Q" target="_5oejgEUGEemuabBpL8rs_Q" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_Z2dt80UHEemuabBpL8rs_Q" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AuIuYG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_Z2dt9EUHEemuabBpL8rs_Q" y="40"/>
@@ -1064,13 +1220,13 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_A4VzQG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_Z2dt9kUHEemuabBpL8rs_Q" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_Z2dt8UUHEemuabBpL8rs_Q"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_Z2dt8UUHEemuabBpL8rs_Q" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_Z0f_EEUHEemuabBpL8rs_Q"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z2dt8kUHEemuabBpL8rs_Q" points="[760, 20, -643984, -643984]$[760, -40, -643984, -643984]$[860, -40, -643984, -643984]$[860, -119, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z6c2EEUHEemuabBpL8rs_Q" id="(0.4968944099378882,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z6c2EUUHEemuabBpL8rs_Q" id="(0.4975124378109453,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_a6nSkEUHEemuabBpL8rs_Q" type="InterfaceRealization_Edge" source="_CWLW0B4gEemmq_cjeiIGww" target="_5oejgEUGEemuabBpL8rs_Q" routing="Rectilinear">
+    <edges xmi:type="notation:Connector" xmi:id="_a6nSkEUHEemuabBpL8rs_Q" type="InterfaceRealization_Edge" source="_CWLW0B4gEemmq_cjeiIGww" target="_5oejgEUGEemuabBpL8rs_Q" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_a6n5oEUHEemuabBpL8rs_Q" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ASvL0G_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_a6n5oUUHEemuabBpL8rs_Q" y="40"/>
@@ -1079,29 +1235,29 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AcvcYG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_a6n5o0UHEemuabBpL8rs_Q" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_a6nSkUUHEemuabBpL8rs_Q"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_a6nSkUUHEemuabBpL8rs_Q" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_a4mgYEUHEemuabBpL8rs_Q"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a6nSkkUHEemuabBpL8rs_Q" points="[1000, 20, -643984, -643984]$[1000, -40, -643984, -643984]$[860, -40, -643984, -643984]$[860, -119, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a-OnQEUHEemuabBpL8rs_Q" id="(0.4,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a-OnQUUHEemuabBpL8rs_Q" id="(0.4975124378109453,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_Qn2M0EUIEemuabBpL8rs_Q" type="Comment_AnnotatedElementEdge" source="_PPTFgEUIEemuabBpL8rs_Q" target="_VMFlgB4jEemmq_cjeiIGww">
-      <styles xmi:type="notation:FontStyle" xmi:id="_Qn2M0UUIEemuabBpL8rs_Q"/>
+    <edges xmi:type="notation:Connector" xmi:id="_Qn2M0EUIEemuabBpL8rs_Q" type="Comment_AnnotatedElementEdge" source="_PPTFgEUIEemuabBpL8rs_Q" target="_VMFlgB4jEemmq_cjeiIGww" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_Qn2M0UUIEemuabBpL8rs_Q" fontName="Segoe UI"/>
       <element xsi:nil="true"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Qn2M0kUIEemuabBpL8rs_Q" points="[1397, -420, -643984, -643984]$[1302, -360, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RJIU8EUIEemuabBpL8rs_Q" id="(0.0,0.49382716049382713)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RJIU8UUIEemuabBpL8rs_Q" id="(1.0,0.38461538461538464)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_9kGl0EmLEem4wpUXttaNpQ" type="Association_Edge" source="_zPiKAB4uEemmq_cjeiIGww" target="_9LKz8FCHEem6oL2ItSt_AQ">
+    <edges xmi:type="notation:Connector" xmi:id="_9kGl0EmLEem4wpUXttaNpQ" type="Association_Edge" source="_zPiKAB4uEemmq_cjeiIGww" target="_9LKz8FCHEem6oL2ItSt_AQ" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_9kGl00mLEem4wpUXttaNpQ" type="Association_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-97LAFCHEem6oL2ItSt_AQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_9kGl1EmLEem4wpUXttaNpQ" x="1" y="-18"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_9kGl1UmLEem4wpUXttaNpQ" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_9kGl1UmLEem4wpUXttaNpQ" visible="false" type="Association_NameLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="__An5sFCHEem6oL2ItSt_AQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_9kGl1kmLEem4wpUXttaNpQ" y="18"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_9kGl10mLEem4wpUXttaNpQ" type="Association_TargetRoleLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_9kGl10mLEem4wpUXttaNpQ" visible="false" type="Association_TargetRoleLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="__C6YsFCHEem6oL2ItSt_AQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_9kGl2EmLEem4wpUXttaNpQ" x="37" y="-18"/>
       </children>
@@ -1109,7 +1265,7 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="__FJ0YFCHEem6oL2ItSt_AQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_9kGl2kmLEem4wpUXttaNpQ" x="-68" y="27"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_9kGl20mLEem4wpUXttaNpQ" type="Association_SourceMultiplicityLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_9kGl20mLEem4wpUXttaNpQ" visible="false" type="Association_SourceMultiplicityLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="__HSiYFCHEem6oL2ItSt_AQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_9kGl3EmLEem4wpUXttaNpQ" x="37" y="18"/>
       </children>
@@ -1117,44 +1273,44 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="__KC7cFCHEem6oL2ItSt_AQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_9kGl3kmLEem4wpUXttaNpQ" x="-38" y="-18"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_9kGl0UmLEem4wpUXttaNpQ"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_9kGl0UmLEem4wpUXttaNpQ" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_9gqQQEmLEem4wpUXttaNpQ"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9kGl0kmLEem4wpUXttaNpQ" points="[521, -440, -643984, -643984]$[760, -440, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9u2dQEmLEem4wpUXttaNpQ" id="(1.0,0.6965174129353234)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9u2dQUmLEem4wpUXttaNpQ" id="(0.0,0.39603960396039606)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_IhOFoG_WEemJ-foOn68QUw" type="Generalization_Edge" source="_vCawAG_VEemJ-foOn68QUw" target="_P0LNAB4gEemmq_cjeiIGww">
+    <edges xmi:type="notation:Connector" xmi:id="_IhOFoG_WEemJ-foOn68QUw" type="Generalization_Edge" source="_vCawAG_VEemJ-foOn68QUw" target="_P0LNAB4gEemmq_cjeiIGww" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_IhOFo2_WEemJ-foOn68QUw" type="Generalization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AM4bcG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_IhOFpG_WEemJ-foOn68QUw" y="40"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_IhOFoW_WEemJ-foOn68QUw"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_IhOFoW_WEemJ-foOn68QUw" fontName="Segoe UI"/>
       <element xmi:type="uml:Generalization" href="documentstructure.uml#_Id8IIG_WEemJ-foOn68QUw"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IhOFom_WEemJ-foOn68QUw" points="[1020, 200, -643984, -643984]$[1020, 160, -643984, -643984]$[1200, 160, -643984, -643984]$[1200, 124, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_InCZwG_WEemJ-foOn68QUw" id="(0.4968944099378882,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_InDA0G_WEemJ-foOn68QUw" id="(0.49586776859504134,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_JClGQG_WEemJ-foOn68QUw" type="Generalization_Edge" source="_qyWpAG_VEemJ-foOn68QUw" target="_P0LNAB4gEemmq_cjeiIGww">
+    <edges xmi:type="notation:Connector" xmi:id="_JClGQG_WEemJ-foOn68QUw" type="Generalization_Edge" source="_qyWpAG_VEemJ-foOn68QUw" target="_P0LNAB4gEemmq_cjeiIGww" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_JCltUG_WEemJ-foOn68QUw" type="Generalization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AP-LsG_XEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_JCltUW_WEemJ-foOn68QUw" y="40"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_JClGQW_WEemJ-foOn68QUw"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_JClGQW_WEemJ-foOn68QUw" fontName="Segoe UI"/>
       <element xmi:type="uml:Generalization" href="documentstructure.uml#_I-TDMG_WEemJ-foOn68QUw"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JClGQm_WEemJ-foOn68QUw" points="[1420, 200, -643984, -643984]$[1420, 160, -643984, -643984]$[1200, 160, -643984, -643984]$[1200, 124, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JIgIEG_WEemJ-foOn68QUw" id="(0.5063291139240507,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JIgIEW_WEemJ-foOn68QUw" id="(0.49586776859504134,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_e2gasG_YEemJ-foOn68QUw" type="Association_Edge" source="_qyWpAG_VEemJ-foOn68QUw" target="_P0LNAB4gEemmq_cjeiIGww">
+    <edges xmi:type="notation:Connector" xmi:id="_e2gasG_YEemJ-foOn68QUw" type="Association_Edge" source="_qyWpAG_VEemJ-foOn68QUw" target="_P0LNAB4gEemmq_cjeiIGww" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_e2gas2_YEemJ-foOn68QUw" type="Association_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gmKacG_YEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_e2hBwG_YEemJ-foOn68QUw" y="-20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_e2hBwW_YEemJ-foOn68QUw" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_e2hBwW_YEemJ-foOn68QUw" visible="false" type="Association_NameLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gpATEG_YEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_e2hBwm_YEemJ-foOn68QUw" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_e2hBw2_YEemJ-foOn68QUw" type="Association_TargetRoleLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_e2hBw2_YEemJ-foOn68QUw" visible="false" type="Association_TargetRoleLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gsBx4G_YEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_e2hBxG_YEemJ-foOn68QUw" x="54" y="-20"/>
       </children>
@@ -1162,7 +1318,7 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hISQEG_YEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_e2hBxm_YEemJ-foOn68QUw" x="-54" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_e2hBx2_YEemJ-foOn68QUw" type="Association_SourceMultiplicityLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_e2hBx2_YEemJ-foOn68QUw" visible="false" type="Association_SourceMultiplicityLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hPUsMG_YEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_e2hByG_YEemJ-foOn68QUw" x="54" y="20"/>
       </children>
@@ -1170,61 +1326,61 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hWWhQG_YEemJ-foOn68QUw" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_e2hBym_YEemJ-foOn68QUw" x="-54" y="-20"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_e2gasW_YEemJ-foOn68QUw"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_e2gasW_YEemJ-foOn68QUw" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_ezjNUG_YEemJ-foOn68QUw"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e2gasm_YEemJ-foOn68QUw" points="[1460, 200, -643984, -643984]$[1460, 40, -643984, -643984]$[1261, 40, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e8S5oG_YEemJ-foOn68QUw" id="(0.8860759493670886,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e8S5oW_YEemJ-foOn68QUw" id="(1.0,0.38461538461538464)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_CSLvoHDKEemmSqLtBrVBMA" type="Generalization_Edge" source="_8hRg8HDJEemmSqLtBrVBMA" target="__m6cMHDJEemmSqLtBrVBMA">
+    <edges xmi:type="notation:Connector" xmi:id="_CSLvoHDKEemmSqLtBrVBMA" type="Generalization_Edge" source="_8hRg8HDJEemmSqLtBrVBMA" target="__m6cMHDJEemmSqLtBrVBMA" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_CSMWsnDKEemmSqLtBrVBMA" type="Generalization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O9T-cHDKEemmSqLtBrVBMA" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_CSMWs3DKEemmSqLtBrVBMA" y="40"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_CSMWsHDKEemmSqLtBrVBMA"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_CSMWsHDKEemmSqLtBrVBMA" fontName="Segoe UI"/>
       <element xmi:type="uml:Generalization" href="documentstructure.uml#_CRMRIHDKEemmSqLtBrVBMA"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CSMWsXDKEemmSqLtBrVBMA" points="[800, 600, -643984, -643984]$[660, 600, -643984, -643984]$[660, 341, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CT2jkHDKEemmSqLtBrVBMA" id="(0.0,0.3305785123966942)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CT2jkXDKEemmSqLtBrVBMA" id="(0.4979253112033195,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_JqTMsHDKEemmSqLtBrVBMA" type="Generalization_Edge" source="_GGa2QHDKEemmSqLtBrVBMA" target="_FCAL4HDKEemmSqLtBrVBMA">
+    <edges xmi:type="notation:Connector" xmi:id="_JqTMsHDKEemmSqLtBrVBMA" type="Generalization_Edge" source="_GGa2QHDKEemmSqLtBrVBMA" target="_FCAL4HDKEemmSqLtBrVBMA" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_JqTMs3DKEemmSqLtBrVBMA" type="Generalization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_erknEHDKEemmSqLtBrVBMA" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_JqTMtHDKEemmSqLtBrVBMA" y="40"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_JqTMsXDKEemmSqLtBrVBMA"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_JqTMsXDKEemmSqLtBrVBMA" fontName="Segoe UI"/>
       <element xmi:type="uml:Generalization" href="documentstructure.uml#_JpPcwHDKEemmSqLtBrVBMA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JqTMsnDKEemmSqLtBrVBMA" points="[380, 560, -643984, -643984]$[380, 341, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jr7kYHDKEemmSqLtBrVBMA" id="(0.4979253112033195,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jr7kYXDKEemmSqLtBrVBMA" id="(0.4979253112033195,1.0)"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JqTMsnDKEemmSqLtBrVBMA" points="[220, 560, -643984, -643984]$[220, 459, -643984, -643984]$[220, 341, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jr7kYHDKEemmSqLtBrVBMA" id="(0.5524861878453039,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jr7kYXDKEemmSqLtBrVBMA" id="(0.5524861878453039,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_S6CSsHDKEemmSqLtBrVBMA" type="InterfaceRealization_Edge" source="_bYhZ8B4gEemmq_cjeiIGww" target="_vCawAG_VEemJ-foOn68QUw">
+    <edges xmi:type="notation:Connector" xmi:id="_S6CSsHDKEemmSqLtBrVBMA" type="InterfaceRealization_Edge" source="_bYhZ8B4gEemmq_cjeiIGww" target="_vCawAG_VEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_S6C5wHDKEemmSqLtBrVBMA" type="InterfaceRealization_StereotypeLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_S6C5wXDKEemmSqLtBrVBMA" y="40"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_S6C5wnDKEemmSqLtBrVBMA" type="InterfaceRealization_NameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_S6C5w3DKEemmSqLtBrVBMA" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_S6CSsXDKEemmSqLtBrVBMA"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_S6CSsXDKEemmSqLtBrVBMA" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_S5BmEHDKEemmSqLtBrVBMA"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S6CSsnDKEemmSqLtBrVBMA" points="[1120, 560, -643984, -643984]$[1000, 301, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S7cn8HDKEemmSqLtBrVBMA" id="(0.5,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S7dPAHDKEemmSqLtBrVBMA" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_UrMuUHDKEemmSqLtBrVBMA" type="InterfaceRealization_Edge" source="_Zd2dAB4gEemmq_cjeiIGww" target="_qyWpAG_VEemJ-foOn68QUw">
+    <edges xmi:type="notation:Connector" xmi:id="_UrMuUHDKEemmSqLtBrVBMA" type="InterfaceRealization_Edge" source="_Zd2dAB4gEemmq_cjeiIGww" target="_qyWpAG_VEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_UrMuU3DKEemmSqLtBrVBMA" type="InterfaceRealization_StereotypeLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_UrMuVHDKEemmSqLtBrVBMA" y="40"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_UrMuVXDKEemmSqLtBrVBMA" type="InterfaceRealization_NameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_UrMuVnDKEemmSqLtBrVBMA" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_UrMuUXDKEemmSqLtBrVBMA"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_UrMuUXDKEemmSqLtBrVBMA" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_UqoGkHDKEemmSqLtBrVBMA"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UrMuUnDKEemmSqLtBrVBMA" points="[1300, 560, -643984, -643984]$[1400, 304, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UsZoMHDKEemmSqLtBrVBMA" id="(0.4878048780487805,0.0)"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UsZoMHDKEemmSqLtBrVBMA" id="(0.425531914893617,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UsZoMXDKEemmSqLtBrVBMA" id="(0.5063291139240507,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_VJVb0HDKEemmSqLtBrVBMA" type="InterfaceRealization_Edge" source="_YYTKMR4gEemmq_cjeiIGww" target="_qyWpAG_VEemJ-foOn68QUw">
+    <edges xmi:type="notation:Connector" xmi:id="_VJVb0HDKEemmSqLtBrVBMA" type="InterfaceRealization_Edge" source="_YYTKMR4gEemmq_cjeiIGww" target="_qyWpAG_VEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_VJVb03DKEemmSqLtBrVBMA" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_VkjYMHDKEemmSqLtBrVBMA" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_VJVb1HDKEemmSqLtBrVBMA" y="40"/>
@@ -1233,72 +1389,79 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_VlB5UHDKEemmSqLtBrVBMA" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_VJWC4XDKEemmSqLtBrVBMA" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_VJVb0XDKEemmSqLtBrVBMA"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_VJVb0XDKEemmSqLtBrVBMA" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_VIw0EHDKEemmSqLtBrVBMA"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VJVb0nDKEemmSqLtBrVBMA" points="[1500, 560, -643984, -643984]$[1500, 440, -643984, -643984]$[1400, 440, -643984, -643984]$[1400, 304, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VKui8HDKEemmSqLtBrVBMA" id="(0.4918032786885246,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VKvKAHDKEemmSqLtBrVBMA" id="(0.5063291139240507,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_XCy30HDKEemmSqLtBrVBMA" type="InterfaceRealization_Edge" source="_8hRg8HDJEemmSqLtBrVBMA" target="_vCawAG_VEemJ-foOn68QUw">
+    <edges xmi:type="notation:Connector" xmi:id="_XCy30HDKEemmSqLtBrVBMA" type="InterfaceRealization_Edge" source="_8hRg8HDJEemmSqLtBrVBMA" target="_vCawAG_VEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_XCze4HDKEemmSqLtBrVBMA" type="InterfaceRealization_StereotypeLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_XCze4XDKEemmSqLtBrVBMA" y="40"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_XCze4nDKEemmSqLtBrVBMA" type="InterfaceRealization_NameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_XCze43DKEemmSqLtBrVBMA" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_XCy30XDKEemmSqLtBrVBMA"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_XCy30XDKEemmSqLtBrVBMA" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_XBsroHDKEemmSqLtBrVBMA"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XCy30nDKEemmSqLtBrVBMA" points="[880, 560, -643984, -643984]$[1000, 301, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XD9VcHDKEemmSqLtBrVBMA" id="(0.5,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XD98gHDKEemmSqLtBrVBMA" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_3VPEcHDKEemmSqLtBrVBMA" type="Association_Edge" source="_GGa2QHDKEemmSqLtBrVBMA" target="_05ZUIHDKEemmSqLtBrVBMA">
+    <edges xmi:type="notation:Connector" xmi:id="_3VPEcHDKEemmSqLtBrVBMA" type="Association_Edge" source="_GGa2QHDKEemmSqLtBrVBMA" target="_05ZUIHDKEemmSqLtBrVBMA" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_3VPrgHDKEemmSqLtBrVBMA" type="Association_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JUmdsFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPrgXDKEemmSqLtBrVBMA" y="-20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_3VPrgnDKEemmSqLtBrVBMA" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3VPrgnDKEemmSqLtBrVBMA" visible="false" type="Association_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JW5jwFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPrg3DKEemmSqLtBrVBMA" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_3VPrhHDKEemmSqLtBrVBMA" type="Association_TargetRoleLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPrhXDKEemmSqLtBrVBMA" y="-20"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_3VPrhHDKEemmSqLtBrVBMA" visible="false" type="Association_TargetRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Jbl2gFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPrhXDKEemmSqLtBrVBMA" x="65" y="-20"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_3VPrhnDKEemmSqLtBrVBMA" type="Association_SourceRoleLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPrh3DKEemmSqLtBrVBMA" y="20"/>
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JgQ7IFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPrh3DKEemmSqLtBrVBMA" x="-66" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_3VPriHDKEemmSqLtBrVBMA" type="Association_SourceMultiplicityLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPriXDKEemmSqLtBrVBMA" y="20"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_3VPriHDKEemmSqLtBrVBMA" visible="false" type="Association_SourceMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JnbTEFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPriXDKEemmSqLtBrVBMA" x="65" y="20"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_3VPrinDKEemmSqLtBrVBMA" type="Association_TargetMultiplicityLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPri3DKEemmSqLtBrVBMA" y="-20"/>
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Jutm0FTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3VPri3DKEemmSqLtBrVBMA" x="-66" y="-20"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_3VPEcXDKEemmSqLtBrVBMA"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_3VPEcXDKEemmSqLtBrVBMA" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_3UcaQHDKEemmSqLtBrVBMA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3VPEcnDKEemmSqLtBrVBMA" points="[260, 620, -643984, -643984]$[100, 341, -643984, -643984]"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3VPEcnDKEemmSqLtBrVBMA" points="[80, 620, -643984, -643984]$[-80, 341, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3WaJIHDKEemmSqLtBrVBMA" id="(0.0,0.49586776859504134)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3WaJIXDKEemmSqLtBrVBMA" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_CTmSMHsNEemUDJPY7edDLg" type="Generalization_Edge" source="__Wm8oHsMEemUDJPY7edDLg" target="_04LO4HsMEemUDJPY7edDLg">
+    <edges xmi:type="notation:Connector" xmi:id="_CTmSMHsNEemUDJPY7edDLg" type="Generalization_Edge" source="__Wm8oHsMEemUDJPY7edDLg" target="_04LO4HsMEemUDJPY7edDLg" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_CTm5QnsNEemUDJPY7edDLg" type="Generalization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O8tKIDoIEeutb_jRObmUug" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_CTm5Q3sNEemUDJPY7edDLg" y="40"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_CTm5QHsNEemUDJPY7edDLg"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_CTm5QHsNEemUDJPY7edDLg" fontName="Segoe UI"/>
       <element xmi:type="uml:Generalization" href="documentstructure.uml#_CSdpwHsNEemUDJPY7edDLg"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CTm5QXsNEemUDJPY7edDLg" points="[800, 940, -643984, -643984]$[660, 940, -643984, -643984]$[660, 881, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CVRtMHsNEemUDJPY7edDLg" id="(0.0,0.4)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CVRtMXsNEemUDJPY7edDLg" id="(0.5429864253393665,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_Fvua0HsNEemUDJPY7edDLg" type="Generalization_Edge" source="_DBeE0HsNEemUDJPY7edDLg" target="_zLbZMHsMEemUDJPY7edDLg">
+    <edges xmi:type="notation:Connector" xmi:id="_Fvua0HsNEemUDJPY7edDLg" type="Generalization_Edge" source="_DBeE0HsNEemUDJPY7edDLg" target="_zLbZMHsMEemUDJPY7edDLg" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_FvvB4HsNEemUDJPY7edDLg" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JSPGMFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_FvvB4XsNEemUDJPY7edDLg" y="40"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_Fvua0XsNEemUDJPY7edDLg"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_Fvua0XsNEemUDJPY7edDLg" fontName="Segoe UI"/>
       <element xmi:type="uml:Generalization" href="documentstructure.uml#_FuzNwHsNEemUDJPY7edDLg"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fvua0nsNEemUDJPY7edDLg" points="[380, 940, -643984, -643984]$[380, 881, -643984, -643984]"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fvua0nsNEemUDJPY7edDLg" points="[200, 940, -643984, -643984]$[200, 881, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FxTIIHsNEemUDJPY7edDLg" id="(0.4979253112033195,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FxTIIXsNEemUDJPY7edDLg" id="(0.4979253112033195,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_GhiSQHsNEemUDJPY7edDLg" type="InterfaceRealization_Edge" source="__Wm8oHsMEemUDJPY7edDLg" target="_vCawAG_VEemJ-foOn68QUw">
+    <edges xmi:type="notation:Connector" xmi:id="_GhiSQHsNEemUDJPY7edDLg" type="InterfaceRealization_Edge" source="__Wm8oHsMEemUDJPY7edDLg" target="_vCawAG_VEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_GhiSQ3sNEemUDJPY7edDLg" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_PCC9IDoIEeutb_jRObmUug" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_GhiSRHsNEemUDJPY7edDLg" y="40"/>
@@ -1307,112 +1470,118 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_PLqzMDoIEeutb_jRObmUug" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_GhiSRnsNEemUDJPY7edDLg" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_GhiSQXsNEemUDJPY7edDLg"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_GhiSQXsNEemUDJPY7edDLg" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_GgmeIHsNEemUDJPY7edDLg"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GhiSQnsNEemUDJPY7edDLg" points="[961, 940, -643984, -643984]$[1000, 940, -643984, -643984]$[1000, 301, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GjbIoHsNEemUDJPY7edDLg" id="(1.0,0.4)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GjbIoXsNEemUDJPY7edDLg" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_J_Wc8HsNEemUDJPY7edDLg" type="Association_Edge" source="_DBeE0HsNEemUDJPY7edDLg" target="_05ZUIHDKEemmSqLtBrVBMA">
+    <edges xmi:type="notation:Connector" xmi:id="_J_Wc8HsNEemUDJPY7edDLg" type="Association_Edge" source="_DBeE0HsNEemUDJPY7edDLg" target="_05ZUIHDKEemmSqLtBrVBMA" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_J_XEAHsNEemUDJPY7edDLg" type="Association_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JxUO4FTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XEAXsNEemUDJPY7edDLg" y="-20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_J_XEAnsNEemUDJPY7edDLg" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_J_XEAnsNEemUDJPY7edDLg" visible="false" type="Association_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J2cmgFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XEA3sNEemUDJPY7edDLg" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_J_XEBHsNEemUDJPY7edDLg" type="Association_TargetRoleLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XEBXsNEemUDJPY7edDLg" y="-20"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_J_XEBHsNEemUDJPY7edDLg" visible="false" type="Association_TargetRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J7Pm8FTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XEBXsNEemUDJPY7edDLg" x="119" y="-20"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_J_XEBnsNEemUDJPY7edDLg" type="Association_SourceRoleLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XEB3sNEemUDJPY7edDLg" y="20"/>
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J9cmYFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XEB3sNEemUDJPY7edDLg" x="-120" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_J_XECHsNEemUDJPY7edDLg" type="Association_SourceMultiplicityLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XECXsNEemUDJPY7edDLg" y="20"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_J_XECHsNEemUDJPY7edDLg" visible="false" type="Association_SourceMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J_o-wFTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XECXsNEemUDJPY7edDLg" x="119" y="20"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_J_XECnsNEemUDJPY7edDLg" type="Association_TargetMultiplicityLabel">
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XEC3sNEemUDJPY7edDLg" y="-20"/>
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KB8r4FTZEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_J_XEC3sNEemUDJPY7edDLg" x="-120" y="-20"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_J_Wc8XsNEemUDJPY7edDLg"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_J_Wc8XsNEemUDJPY7edDLg" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_J98uwHsNEemUDJPY7edDLg"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J_Wc8nsNEemUDJPY7edDLg" points="[260, 980, -643984, -643984]$[100, 341, -643984, -643984]"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J_Wc8nsNEemUDJPY7edDLg" points="[80, 980, -643984, -643984]$[-80, 341, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KBa5gHsNEemUDJPY7edDLg" id="(0.0,0.4)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KBa5gXsNEemUDJPY7edDLg" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_hc59oIxSEem126L41vD09A" type="Association_Edge" source="_zPiKAB4uEemmq_cjeiIGww" target="_eVb2YIxSEem126L41vD09A">
+    <edges xmi:type="notation:Connector" xmi:id="_hc59oIxSEem126L41vD09A" type="Association_Edge" source="_zPiKAB4uEemmq_cjeiIGww" target="_eVb2YIxSEem126L41vD09A" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_hc59o4xSEem126L41vD09A" type="Association_StereotypeLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_hc59pIxSEem126L41vD09A" y="-20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_hc59pYxSEem126L41vD09A" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_hc59pYxSEem126L41vD09A" visible="false" type="Association_NameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_hc59poxSEem126L41vD09A" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_hc59p4xSEem126L41vD09A" type="Association_TargetRoleLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_hc59p4xSEem126L41vD09A" visible="false" type="Association_TargetRoleLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_hc59qIxSEem126L41vD09A" y="-20"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_hc59qYxSEem126L41vD09A" type="Association_SourceRoleLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_hc59qoxSEem126L41vD09A" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_hc59q4xSEem126L41vD09A" type="Association_SourceMultiplicityLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_hc59q4xSEem126L41vD09A" visible="false" type="Association_SourceMultiplicityLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_hc59rIxSEem126L41vD09A" y="20"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_hc6ksIxSEem126L41vD09A" type="Association_TargetMultiplicityLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_hc6ksYxSEem126L41vD09A" y="-20"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_hc59oYxSEem126L41vD09A"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_hc59oYxSEem126L41vD09A" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_hbxVMIxSEem126L41vD09A"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hc59ooxSEem126L41vD09A" points="[521, -560, -643984, -643984]$[641, -560, -643984, -643984]$[760, -560, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hfeJcIxSEem126L41vD09A" id="(1.0,0.09950248756218906)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hfeJcYxSEem126L41vD09A" id="(0.0,0.24691358024691357)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_WhXncIzyEem126L41vD09A" type="InterfaceRealization_Edge" source="_LpkXcIzyEem126L41vD09A" target="_8-_ZYIzxEem126L41vD09A">
+    <edges xmi:type="notation:Connector" xmi:id="_WhXncIzyEem126L41vD09A" type="InterfaceRealization_Edge" source="_LpkXcIzyEem126L41vD09A" target="_8-_ZYIzxEem126L41vD09A" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_WhXnc4zyEem126L41vD09A" type="InterfaceRealization_StereotypeLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_WhXndIzyEem126L41vD09A" y="40"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_WhXndYzyEem126L41vD09A" type="InterfaceRealization_NameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_WhXndozyEem126L41vD09A" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_WhXncYzyEem126L41vD09A"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_WhXncYzyEem126L41vD09A" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_WgTQcIzyEem126L41vD09A"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WhXncozyEem126L41vD09A" points="[100, -360, -643984, -643984]$[100, -439, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WjgVcIzyEem126L41vD09A" id="(0.4968944099378882,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WjgVcYzyEem126L41vD09A" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_ZgSPoIzyEem126L41vD09A" type="Association_Edge" source="_zPiKAB4uEemmq_cjeiIGww" target="_8-_ZYIzxEem126L41vD09A">
+    <edges xmi:type="notation:Connector" xmi:id="_ZgSPoIzyEem126L41vD09A" type="Association_Edge" source="_zPiKAB4uEemmq_cjeiIGww" target="_8-_ZYIzxEem126L41vD09A" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_ZgSPo4zyEem126L41vD09A" type="Association_StereotypeLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ZgS2sIzyEem126L41vD09A" y="-20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_ZgS2sYzyEem126L41vD09A" type="Association_NameLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ZgS2sYzyEem126L41vD09A" visible="false" type="Association_NameLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ZgS2sozyEem126L41vD09A" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_ZgS2s4zyEem126L41vD09A" type="Association_TargetRoleLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ZgS2s4zyEem126L41vD09A" visible="false" type="Association_TargetRoleLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ZgS2tIzyEem126L41vD09A" y="-20"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_ZgS2tYzyEem126L41vD09A" type="Association_SourceRoleLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ZgS2tozyEem126L41vD09A" y="20"/>
       </children>
-      <children xmi:type="notation:DecorationNode" xmi:id="_ZgS2t4zyEem126L41vD09A" type="Association_SourceMultiplicityLabel">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ZgS2t4zyEem126L41vD09A" visible="false" type="Association_SourceMultiplicityLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ZgS2uIzyEem126L41vD09A" y="20"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_ZgS2uYzyEem126L41vD09A" type="Association_TargetMultiplicityLabel">
         <layoutConstraint xmi:type="notation:Location" xmi:id="_ZgS2uozyEem126L41vD09A" y="-20"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_ZgSPoYzyEem126L41vD09A"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_ZgSPoYzyEem126L41vD09A" fontName="Segoe UI"/>
       <element xmi:type="uml:Association" href="documentstructure.uml#_ZfHK8IzyEem126L41vD09A"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZgSPoozyEem126L41vD09A" points="[360, -520, -643984, -643984]$[181, -520, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZihEQIzyEem126L41vD09A" id="(0.0,0.29850746268656714)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZihEQYzyEem126L41vD09A" id="(1.0,0.425531914893617)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_r0vnYJcXEemjzoOvLRrzSw" type="Generalization_Edge" source="_fUhBAJcXEemjzoOvLRrzSw" target="_XM-SIJcXEemjzoOvLRrzSw">
+    <edges xmi:type="notation:Connector" xmi:id="_r0vnYJcXEemjzoOvLRrzSw" type="Generalization_Edge" source="_fUhBAJcXEemjzoOvLRrzSw" target="_XM-SIJcXEemjzoOvLRrzSw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_r0wOcJcXEemjzoOvLRrzSw" type="Generalization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_PU7c4DoIEeutb_jRObmUug" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_r0wOcZcXEemjzoOvLRrzSw" y="40"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_r0vnYZcXEemjzoOvLRrzSw"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_r0vnYZcXEemjzoOvLRrzSw" fontName="Segoe UI"/>
       <element xmi:type="uml:Generalization" href="documentstructure.uml#_rzo0IJcXEemjzoOvLRrzSw"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r0vnYpcXEemjzoOvLRrzSw" points="[1120, 900, -643984, -643984]$[1120, 860, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r3DUgJcXEemjzoOvLRrzSw" id="(0.4968944099378882,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r3DUgZcXEemjzoOvLRrzSw" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_v4qIwJcXEemjzoOvLRrzSw" type="InterfaceRealization_Edge" source="_fUhBAJcXEemjzoOvLRrzSw" target="_vCawAG_VEemJ-foOn68QUw">
+    <edges xmi:type="notation:Connector" xmi:id="_v4qIwJcXEemjzoOvLRrzSw" type="InterfaceRealization_Edge" source="_fUhBAJcXEemjzoOvLRrzSw" target="_vCawAG_VEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_v4qIw5cXEemjzoOvLRrzSw" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_PbvPgDoIEeutb_jRObmUug" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_v4qv0JcXEemjzoOvLRrzSw" y="40"/>
@@ -1421,13 +1590,13 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_PkbRcDoIEeutb_jRObmUug" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_v4qv0pcXEemjzoOvLRrzSw" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_v4qIwZcXEemjzoOvLRrzSw"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_v4qIwZcXEemjzoOvLRrzSw" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_v3o1EJcXEemjzoOvLRrzSw"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_v4qIwpcXEemjzoOvLRrzSw" points="[1040, 940, -643984, -643984]$[1000, 940, -643984, -643984]$[1000, 301, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v6swIJcXEemjzoOvLRrzSw" id="(0.0,0.39603960396039606)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v6swIZcXEemjzoOvLRrzSw" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_d297EOj_Eem_UoEukOln_g" type="InterfaceRealization_Edge" source="_aWLU4Oj_Eem_UoEukOln_g" target="_5oejgEUGEemuabBpL8rs_Q">
+    <edges xmi:type="notation:Connector" xmi:id="_d297EOj_Eem_UoEukOln_g" type="InterfaceRealization_Edge" source="_aWLU4Oj_Eem_UoEukOln_g" target="_5oejgEUGEemuabBpL8rs_Q" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_d297E-j_Eem_UoEukOln_g" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_eO_ZgOj_Eem_UoEukOln_g" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_d297FOj_Eem_UoEukOln_g" y="40"/>
@@ -1436,13 +1605,13 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_eP_fEOj_Eem_UoEukOln_g" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_d297Fuj_Eem_UoEukOln_g" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_d297Eej_Eem_UoEukOln_g"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_d297Eej_Eem_UoEukOln_g" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_Tk-G0-j_Eem_UoEukOln_g"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_d297Euj_Eem_UoEukOln_g" points="[560, 20, -643984, -643984]$[560, -40, -643984, -643984]$[860, -40, -643984, -643984]$[860, -119, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eN6bcOj_Eem_UoEukOln_g" id="(0.4968944099378882,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eN6bcej_Eem_UoEukOln_g" id="(0.4975124378109453,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_wWtRMDoHEeutb_jRObmUug" type="InterfaceRealization_Edge" source="_k_MmYDoHEeutb_jRObmUug" target="_vCawAG_VEemJ-foOn68QUw">
+    <edges xmi:type="notation:Connector" xmi:id="_wWtRMDoHEeutb_jRObmUug" type="InterfaceRealization_Edge" source="_k_MmYDoHEeutb_jRObmUug" target="_vCawAG_VEemJ-foOn68QUw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_wWtRMzoHEeutb_jRObmUug" type="InterfaceRealization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MkQsEDoIEeutb_jRObmUug" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_wWt4QDoHEeutb_jRObmUug" y="40"/>
@@ -1451,23 +1620,160 @@
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MpslsDoIEeutb_jRObmUug" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_wWt4QjoHEeutb_jRObmUug" y="60"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_wWtRMToHEeutb_jRObmUug"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_wWtRMToHEeutb_jRObmUug" fontName="Segoe UI"/>
       <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_wRFKUDoHEeutb_jRObmUug"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wWtRMjoHEeutb_jRObmUug" points="[961, 820, -643984, -643984]$[1000, 820, -643984, -643984]$[1000, 301, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wlf7IDoHEeutb_jRObmUug" id="(1.0,0.6)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wlf7IToHEeutb_jRObmUug" id="(0.4968944099378882,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_Uc8p0EUwEeuZlM4bILw9_g" type="Generalization_Edge" source="_bYhZ8B4gEemmq_cjeiIGww" target="_XM-SIJcXEemjzoOvLRrzSw">
+    <edges xmi:type="notation:Connector" xmi:id="_Uc8p0EUwEeuZlM4bILw9_g" type="Generalization_Edge" source="_bYhZ8B4gEemmq_cjeiIGww" target="_XM-SIJcXEemjzoOvLRrzSw" routing="Rectilinear" lineColor="0">
       <children xmi:type="notation:DecorationNode" xmi:id="_Uc-fAEUwEeuZlM4bILw9_g" type="Generalization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hDr08EU9EeuiX_bKpBiolQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
         <layoutConstraint xmi:type="notation:Location" xmi:id="_Uc_GEEUwEeuZlM4bILw9_g" y="40"/>
       </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_Uc8p0UUwEeuZlM4bILw9_g"/>
+      <styles xmi:type="notation:FontStyle" xmi:id="_Uc8p0UUwEeuZlM4bILw9_g" fontName="Segoe UI"/>
       <element xmi:type="uml:Generalization" href="documentstructure.uml#_Ubc1AEUwEeuZlM4bILw9_g"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Uc8p0kUwEeuZlM4bILw9_g" points="[1120, 681, -643984, -643984]$[1120, 760, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Uf2M0EUwEeuZlM4bILw9_g" id="(0.5,1.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Uf2M0UUwEeuZlM4bILw9_g" id="(0.4968944099378882,0.0)"/>
     </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_RWHdEFTZEeuQxZMd2JwdqQ" type="InterfaceRealization_Edge" source="_FCAL4HDKEemmSqLtBrVBMA" target="_FfplYFTZEeuQxZMd2JwdqQ" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_RWHdE1TZEeuQxZMd2JwdqQ" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_93WD8FcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_RWHdFFTZEeuQxZMd2JwdqQ" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_RWHdFVTZEeuQxZMd2JwdqQ" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_950wMFcMEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_RWHdFlTZEeuQxZMd2JwdqQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_RWHdEVTZEeuQxZMd2JwdqQ" fontName="Segoe UI"/>
+      <element xmi:type="uml:InterfaceRealization" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_cvcfYHALEemJ-foOn68QUw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RWHdElTZEeuQxZMd2JwdqQ" points="[200, 200, -643984, -643984]$[200, 160, -643984, -643984]$[263, 160, -643984, -643984]$[263, 121, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9YousFcMEeuBqtWKTOr8pw" id="(0.6629834254143646,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_98VRoFcMEeuBqtWKTOr8pw" id="(0.4968944099378882,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="__UqNUFTZEeuQxZMd2JwdqQ" type="InterfaceRealization_Edge" source="_bYhZ8B4gEemmq_cjeiIGww" target="_bS5PQFTZEeuQxZMd2JwdqQ" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="__Uq0YFTZEeuQxZMd2JwdqQ" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kkpuUFmWEeuW5fxFuhFNyw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__Uq0YVTZEeuQxZMd2JwdqQ" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__Uq0YlTZEeuQxZMd2JwdqQ" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_know4FmWEeuW5fxFuhFNyw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__Uq0Y1TZEeuQxZMd2JwdqQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="__UqNUVTZEeuQxZMd2JwdqQ" fontName="Segoe UI"/>
+      <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#__SecAFTZEeuQxZMd2JwdqQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__UqNUlTZEeuQxZMd2JwdqQ" points="[1180, 680, -643984, -643984]$[1180, 720, -643984, -643984]$[1300, 720, -643984, -643984]$[1300, 760, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__ZEzQFTZEeuQxZMd2JwdqQ" id="(0.9032258064516129,1.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__ZEzQVTZEeuQxZMd2JwdqQ" id="(0.425531914893617,0.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_HAsr8FTaEeuQxZMd2JwdqQ" type="InterfaceRealization_Edge" source="_BnLpkFTaEeuQxZMd2JwdqQ" target="_bS5PQFTZEeuQxZMd2JwdqQ" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_HAsr81TaEeuQxZMd2JwdqQ" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KiU_oFTaEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_HAsr9FTaEeuQxZMd2JwdqQ" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_HAsr9VTaEeuQxZMd2JwdqQ" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Kkfi0FTaEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_HAsr9lTaEeuQxZMd2JwdqQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_HAsr8VTaEeuQxZMd2JwdqQ" fontName="Segoe UI"/>
+      <element xmi:type="uml:InterfaceRealization" href="documentstructure.uml#_G-Y-0FTaEeuQxZMd2JwdqQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HAsr8lTaEeuQxZMd2JwdqQ" points="[1450, 940, -643984, -643984]$[1450, 864, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HGGwYFTaEeuQxZMd2JwdqQ" id="(0.410958904109589,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HGGwYVTaEeuQxZMd2JwdqQ" id="(0.425531914893617,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_I-3BwFTaEeuQxZMd2JwdqQ" type="Generalization_Edge" source="_BnLpkFTaEeuQxZMd2JwdqQ" target="_fUhBAJcXEemjzoOvLRrzSw" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_I-3Bw1TaEeuQxZMd2JwdqQ" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_P0mxkFTaEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_I-3BxFTaEeuQxZMd2JwdqQ" y="40"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_I-3BwVTaEeuQxZMd2JwdqQ" fontName="Segoe UI"/>
+      <element xmi:type="uml:Generalization" href="documentstructure.uml#_I8qpYFTaEeuQxZMd2JwdqQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_I-3BwlTaEeuQxZMd2JwdqQ" points="[1240, 1000, -643984, -643984]$[1201, 1000, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JDRnsFTaEeuQxZMd2JwdqQ" id="(0.0,0.6)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JDSOwFTaEeuQxZMd2JwdqQ" id="(1.0,0.594059405940594)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_Mg5vsFTbEeuQxZMd2JwdqQ" type="Association_Edge" source="_vJifAFTYEeuQxZMd2JwdqQ" target="_05ZUIHDKEemmSqLtBrVBMA" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Mg5vs1TbEeuQxZMd2JwdqQ" type="Association_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RMxB4FTbEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg5vtFTbEeuQxZMd2JwdqQ" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Mg5vtVTbEeuQxZMd2JwdqQ" visible="false" type="Association_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RO6-AFTbEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg5vtlTbEeuQxZMd2JwdqQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Mg6WwFTbEeuQxZMd2JwdqQ" visible="false" type="Association_TargetRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RRETEFTbEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg6WwVTbEeuQxZMd2JwdqQ" x="41" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Mg6WwlTbEeuQxZMd2JwdqQ" type="Association_SourceRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RWN40FTbEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg6Ww1TbEeuQxZMd2JwdqQ" x="-102" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Mg6WxFTbEeuQxZMd2JwdqQ" visible="false" type="Association_SourceMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Ra16IFTbEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg6WxVTbEeuQxZMd2JwdqQ" x="41" y="80"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Mg6WxlTbEeuQxZMd2JwdqQ" type="Association_TargetMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RiCHQFTbEeuQxZMd2JwdqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg6Wx1TbEeuQxZMd2JwdqQ" x="-102" y="-20"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_Mg5vsVTbEeuQxZMd2JwdqQ" fontName="Segoe UI"/>
+      <element xmi:type="uml:Association" href="documentstructure.uml#_MeqUAFTbEeuQxZMd2JwdqQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Mg5vslTbEeuQxZMd2JwdqQ" points="[380, 681, -643984, -643984]$[380, 720, -643984, -643984]$[-80, 720, -643984, -643984]$[-80, 341, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MlPdIFTbEeuQxZMd2JwdqQ" id="(0.11049723756906077,1.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MlPdIVTbEeuQxZMd2JwdqQ" id="(0.4968944099378882,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_FCp0EFcNEeuBqtWKTOr8pw" type="Generalization_Edge" source="_vJifAFTYEeuQxZMd2JwdqQ" target="_x3BssFcMEeuBqtWKTOr8pw" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_FCp0E1cNEeuBqtWKTOr8pw" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_FCp0FFcNEeuBqtWKTOr8pw" y="40"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_FCp0EVcNEeuBqtWKTOr8pw" fontName="Segoe UI"/>
+      <element xmi:type="uml:Generalization" href="documentstructure.uml#_FAOLIFcNEeuBqtWKTOr8pw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FCp0ElcNEeuBqtWKTOr8pw" points="[400, 560, -643984, -643984]$[400, 341, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FHepsFcNEeuBqtWKTOr8pw" id="(0.4419889502762431,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FHepsVcNEeuBqtWKTOr8pw" id="(0.4419889502762431,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_aF4WQFcNEeuBqtWKTOr8pw" type="InterfaceRealization_Edge" source="_x3BssFcMEeuBqtWKTOr8pw" target="_FfplYFTZEeuQxZMd2JwdqQ" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_aF49UlcNEeuBqtWKTOr8pw" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_b0iQcFcNEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_aF49U1cNEeuBqtWKTOr8pw" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_aF49VFcNEeuBqtWKTOr8pw" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_b3Cx4FcNEeuBqtWKTOr8pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_aF49VVcNEeuBqtWKTOr8pw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_aF49UFcNEeuBqtWKTOr8pw" fontName="Segoe UI"/>
+      <element xmi:type="uml:InterfaceRealization" href="platform:/resource/org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.uml#_nV3bEFcMEeuBqtWKTOr8pw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aF49UVcNEeuBqtWKTOr8pw" points="[400, 200, -643984, -643984]$[400, 160, -643984, -643984]$[320, 160, -643984, -643984]$[320, 121, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b5lvkFcNEeuBqtWKTOr8pw" id="(0.4419889502762431,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b5lvkVcNEeuBqtWKTOr8pw" id="(0.4968944099378882,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_0swaUFmWEeuW5fxFuhFNyw" type="InterfaceRealization_Edge" source="_XM-SIJcXEemjzoOvLRrzSw" target="_0mokMFmWEeuW5fxFuhFNyw" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_0swaU1mWEeuW5fxFuhFNyw" type="InterfaceRealization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1RRcoFmWEeuW5fxFuhFNyw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_0swaVFmWEeuW5fxFuhFNyw" y="40"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_0swaVVmWEeuW5fxFuhFNyw" type="InterfaceRealization_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1T1ocFmWEeuW5fxFuhFNyw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_0swaVlmWEeuW5fxFuhFNyw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_0swaUVmWEeuW5fxFuhFNyw" fontName="Segoe UI"/>
+      <element xmi:type="uml:InterfaceRealization" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_AK-1EJQVEemHKPZQudxUGA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0swaUlmWEeuW5fxFuhFNyw" points="[1200, 820, -643984, -643984]$[1240, 820, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1WxAoFmWEeuW5fxFuhFNyw" id="(0.9937888198757764,0.5825242718446602)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1WxAoVmWEeuW5fxFuhFNyw" id="(0.0,0.5769230769230769)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_3n-OQFmWEeuW5fxFuhFNyw" type="Generalization_Edge" source="_bS5PQFTZEeuQxZMd2JwdqQ" target="_0mokMFmWEeuW5fxFuhFNyw" routing="Rectilinear" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3n-OQ1mWEeuW5fxFuhFNyw" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3n-1UFmWEeuW5fxFuhFNyw" y="40"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_3n-OQVmWEeuW5fxFuhFNyw" fontName="Segoe UI"/>
+      <element xmi:type="uml:Generalization" href="documentstructure.uml#_3lCPAFmWEeuW5fxFuhFNyw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3n-OQlmWEeuW5fxFuhFNyw" points="[1440, 820, -643984, -643984]$[1380, 820, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3tx7UFmWEeuW5fxFuhFNyw" id="(0.0,0.5769230769230769)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3tx7UVmWEeuW5fxFuhFNyw" id="(0.9929078014184397,0.5769230769230769)"/>
+    </edges>
   </notation:Diagram>
   <css:ModelStyleSheets xmi:id="_MwqUgB4nEemmq_cjeiIGww">
     <stylesheets xmi:type="css:StyleSheetReference" xmi:id="_Mwq7kB4nEemmq_cjeiIGww" path="/org.eclipse.papyrus.model2doc.emf.documentstructure/model/custom.css"/>
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.uml b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.uml
index 94d093d..8cb47ab 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.uml
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/model/documentstructure.uml
@@ -70,6 +70,7 @@
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IBx-IFwuEemF3-UZXrtb4g"/>
       </ownedAttribute>
       <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_S5BmEHDKEemmSqLtBrVBMA" client="_bYgy4B4gEemmq_cjeiIGww" supplier="_vCXFoG_VEemJ-foOn68QUw" contract="_vCXFoG_VEemJ-foOn68QUw"/>
+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="__SecAFTZEeuQxZMd2JwdqQ" client="_bYgy4B4gEemmq_cjeiIGww" supplier="_bS4BIFTZEeuQxZMd2JwdqQ" contract="_bS4BIFTZEeuQxZMd2JwdqQ"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Class" xmi:id="_TufmIB4jEemmq_cjeiIGww" name="EMFDataSource">
       <ownedAttribute xmi:type="uml:Property" xmi:id="_pbjvgB4jEemmq_cjeiIGww" name="eobject">
@@ -261,6 +262,39 @@
     <packagedElement xmi:type="uml:Class" xmi:id="_k-65kDoHEeutb_jRObmUug" name="EmptyLine">
       <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_wRFKUDoHEeutb_jRObmUug" client="_k-65kDoHEeutb_jRObmUug" supplier="_vCXFoG_VEemJ-foOn68QUw" contract="_vCXFoG_VEemJ-foOn68QUw"/>
     </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_vJYuAFTYEeuQxZMd2JwdqQ" name="ExtendedFileReferenceCell">
+      <ownedComment xmi:type="uml:Comment" xmi:id="_QoqAgFThEeuQxZMd2JwdqQ" annotatedElement="_vJYuAFTYEeuQxZMd2JwdqQ">
+        <body>Insert a file into the cell</body>
+      </ownedComment>
+      <generalization xmi:type="uml:Generalization" xmi:id="_FAOLIFcNEeuBqtWKTOr8pw">
+        <general xmi:type="uml:Class" href="../../org.eclipse.papyrus.model2doc.core.builtintypes/model/BuiltInTypes.uml#_aLJGMFcMEeuBqtWKTOr8pw"/>
+      </generalization>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_Meq7ElTbEeuQxZMd2JwdqQ" name="datasource" type="_VMCiMB4jEemmq_cjeiIGww" aggregation="composite" association="_MeqUAFTbEeuQxZMd2JwdqQ">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MeriIFTbEeuQxZMd2JwdqQ"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MeriIVTbEeuQxZMd2JwdqQ" value="1"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Interface" xmi:id="_bS4BIFTZEeuQxZMd2JwdqQ" name="IGeneratedFile">
+      <ownedComment xmi:type="uml:Comment" xmi:id="_7N0TwFTZEeuQxZMd2JwdqQ" annotatedElement="_bS4BIFTZEeuQxZMd2JwdqQ">
+        <body>Generated files that could be deleted at the end of the process.</body>
+      </ownedComment>
+      <generalization xmi:type="uml:Generalization" xmi:id="_3lCPAFmWEeuW5fxFuhFNyw">
+        <general xmi:type="uml:Interface" href="pathmap://MODEL2DOC/BUILTIN_TYPES/BuiltInTypes.uml#_o1CCUJQUEemHKPZQudxUGA"/>
+      </generalization>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_BnLCgFTaEeuQxZMd2JwdqQ" name="InsertedGeneratedFile">
+      <ownedComment xmi:type="uml:Comment" xmi:id="_MqN1AFThEeuQxZMd2JwdqQ" annotatedElement="_BnLCgFTaEeuQxZMd2JwdqQ">
+        <body>This element reference a generated file which will be inserted in the final document.</body>
+      </ownedComment>
+      <generalization xmi:type="uml:Generalization" xmi:id="_I8qpYFTaEeuQxZMd2JwdqQ" general="_fUOtIJcXEemjzoOvLRrzSw"/>
+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_G-Y-0FTaEeuQxZMd2JwdqQ" client="_BnLCgFTaEeuQxZMd2JwdqQ" supplier="_bS4BIFTZEeuQxZMd2JwdqQ" contract="_bS4BIFTZEeuQxZMd2JwdqQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_MeqUAFTbEeuQxZMd2JwdqQ" memberEnd="_Meq7ElTbEeuQxZMd2JwdqQ _MeriIlTbEeuQxZMd2JwdqQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Meq7EFTbEeuQxZMd2JwdqQ" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Meq7EVTbEeuQxZMd2JwdqQ" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_MeriIlTbEeuQxZMd2JwdqQ" name="filereferencecell" type="_vJYuAFTYEeuQxZMd2JwdqQ" association="_MeqUAFTbEeuQxZMd2JwdqQ"/>
+    </packagedElement>
     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_llmqQB4mEemmq_cjeiIGww">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lln4YB4mEemmq_cjeiIGww" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/BodyPart.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/BodyPart.java
index ed003a3..204025a 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/BodyPart.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/BodyPart.java
@@ -55,7 +55,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Data Source</em>' containment reference.
+	 *            the new value of the '<em>Data Source</em>' containment reference.
 	 * @see #getDataSource()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Document.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Document.java
index 6005347..433e698 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Document.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Document.java
@@ -63,7 +63,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Document Generator Configuration</em>' containment reference.
+	 *            the new value of the '<em>Document Generator Configuration</em>' containment reference.
 	 * @see #getDocumentGeneratorConfiguration()
 	 * @generated
 	 */
@@ -109,7 +109,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Version</em>' containment reference.
+	 *            the new value of the '<em>Version</em>' containment reference.
 	 * @see #getVersion()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/DocumentStructureFactory.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/DocumentStructureFactory.java
index 5eb3775..d4cf396 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/DocumentStructureFactory.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/DocumentStructureFactory.java
@@ -185,6 +185,26 @@
 	EmptyLine createEmptyLine();
 
 	/**
+	 * Returns a new object of class '<em>Extended File Reference Cell</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Extended File Reference Cell</em>'.
+	 * @generated
+	 */
+	ExtendedFileReferenceCell createExtendedFileReferenceCell();
+
+	/**
+	 * Returns a new object of class '<em>Inserted Generated File</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Inserted Generated File</em>'.
+	 * @generated
+	 */
+	InsertedGeneratedFile createInsertedGeneratedFile();
+
+	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/DocumentStructurePackage.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/DocumentStructurePackage.java
index 96cbbf0..4949dc6 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/DocumentStructurePackage.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/DocumentStructurePackage.java
@@ -709,6 +709,57 @@
 	int LEAF_BODY_PART_OPERATION_COUNT = BODY_PART_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile <em>IGenerated File</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getIGeneratedFile()
+	 * @generated
+	 */
+	int IGENERATED_FILE = 12;
+
+	/**
+	 * The number of structural features of the '<em>IGenerated File</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int IGENERATED_FILE_FEATURE_COUNT = BuiltInTypesPackage.IFILE_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get File Path</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int IGENERATED_FILE___GET_FILE_PATH = BuiltInTypesPackage.IFILE_REFERENCE___GET_FILE_PATH;
+
+	/**
+	 * The operation id for the '<em>Get File Accessor</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int IGENERATED_FILE___GET_FILE_ACCESSOR = BuiltInTypesPackage.IFILE_REFERENCE___GET_FILE_ACCESSOR;
+
+	/**
+	 * The number of operations of the '<em>IGenerated File</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int IGENERATED_FILE_OPERATION_COUNT = BuiltInTypesPackage.IFILE_REFERENCE_OPERATION_COUNT + 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.impl.EMFDataSourceImpl <em>EMF Data Source</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -717,7 +768,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getEMFDataSource()
 	 * @generated
 	 */
-	int EMF_DATA_SOURCE = 12;
+	int EMF_DATA_SOURCE = 13;
 
 	/**
 	 * The feature id for the '<em><b>Eobject</b></em>' reference.
@@ -768,7 +819,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getTableOfFigures()
 	 * @generated
 	 */
-	int TABLE_OF_FIGURES = 13;
+	int TABLE_OF_FIGURES = 14;
 
 	/**
 	 * The feature id for the '<em><b>Tof Title</b></em>' attribute.
@@ -809,7 +860,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getTableOfContents()
 	 * @generated
 	 */
-	int TABLE_OF_CONTENTS = 14;
+	int TABLE_OF_CONTENTS = 15;
 
 	/**
 	 * The feature id for the '<em><b>Toc Title</b></em>' attribute.
@@ -850,7 +901,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getExtendedBasicTable()
 	 * @generated
 	 */
-	int EXTENDED_BASIC_TABLE = 15;
+	int EXTENDED_BASIC_TABLE = 16;
 
 	/**
 	 * The feature id for the '<em><b>Caption</b></em>' attribute.
@@ -941,7 +992,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getExtendedTextCell()
 	 * @generated
 	 */
-	int EXTENDED_TEXT_CELL = 16;
+	int EXTENDED_TEXT_CELL = 17;
 
 	/**
 	 * The feature id for the '<em><b>Named Styles</b></em>' containment reference list.
@@ -1022,7 +1073,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getExtendedBasicList()
 	 * @generated
 	 */
-	int EXTENDED_BASIC_LIST = 17;
+	int EXTENDED_BASIC_LIST = 18;
 
 	/**
 	 * The feature id for the '<em><b>Items</b></em>' containment reference list.
@@ -1073,7 +1124,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getExtendedTextListItem()
 	 * @generated
 	 */
-	int EXTENDED_TEXT_LIST_ITEM = 18;
+	int EXTENDED_TEXT_LIST_ITEM = 19;
 
 	/**
 	 * The feature id for the '<em><b>Sub Items</b></em>' containment reference list.
@@ -1144,7 +1195,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getStringVersion()
 	 * @generated
 	 */
-	int STRING_VERSION = 19;
+	int STRING_VERSION = 20;
 
 	/**
 	 * The feature id for the '<em><b>Version</b></em>' attribute.
@@ -1195,7 +1246,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getInsertedFile()
 	 * @generated
 	 */
-	int INSERTED_FILE = 20;
+	int INSERTED_FILE = 21;
 
 	/**
 	 * The feature id for the '<em><b>File Path</b></em>' attribute.
@@ -1267,7 +1318,7 @@
 	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getEmptyLine()
 	 * @generated
 	 */
-	int EMPTY_LINE = 21;
+	int EMPTY_LINE = 22;
 
 	/**
 	 * The feature id for the '<em><b>Data Source</b></em>' containment reference.
@@ -1300,6 +1351,158 @@
 	int EMPTY_LINE_OPERATION_COUNT = LEAF_BODY_PART_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.impl.ExtendedFileReferenceCellImpl <em>Extended File Reference Cell</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.ExtendedFileReferenceCellImpl
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getExtendedFileReferenceCell()
+	 * @generated
+	 */
+	int EXTENDED_FILE_REFERENCE_CELL = 23;
+
+	/**
+	 * The feature id for the '<em><b>Named Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_FILE_REFERENCE_CELL__NAMED_STYLES = BuiltInTypesPackage.FILE_REFERENCE_CELL__NAMED_STYLES;
+
+	/**
+	 * The feature id for the '<em><b>Location</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_FILE_REFERENCE_CELL__LOCATION = BuiltInTypesPackage.FILE_REFERENCE_CELL__LOCATION;
+
+	/**
+	 * The feature id for the '<em><b>File Reference</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_FILE_REFERENCE_CELL__FILE_REFERENCE = BuiltInTypesPackage.FILE_REFERENCE_CELL__FILE_REFERENCE;
+
+	/**
+	 * The feature id for the '<em><b>Datasource</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_FILE_REFERENCE_CELL__DATASOURCE = BuiltInTypesPackage.FILE_REFERENCE_CELL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Extended File Reference Cell</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_FILE_REFERENCE_CELL_FEATURE_COUNT = BuiltInTypesPackage.FILE_REFERENCE_CELL_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Named Style</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_FILE_REFERENCE_CELL___GET_NAMED_STYLE__STRING = BuiltInTypesPackage.FILE_REFERENCE_CELL___GET_NAMED_STYLE__STRING;
+
+	/**
+	 * The number of operations of the '<em>Extended File Reference Cell</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_FILE_REFERENCE_CELL_OPERATION_COUNT = BuiltInTypesPackage.FILE_REFERENCE_CELL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.impl.InsertedGeneratedFileImpl <em>Inserted Generated File</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.InsertedGeneratedFileImpl
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getInsertedGeneratedFile()
+	 * @generated
+	 */
+	int INSERTED_GENERATED_FILE = 24;
+
+	/**
+	 * The feature id for the '<em><b>File Path</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INSERTED_GENERATED_FILE__FILE_PATH = INSERTED_FILE__FILE_PATH;
+
+	/**
+	 * The feature id for the '<em><b>Data Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INSERTED_GENERATED_FILE__DATA_SOURCE = INSERTED_FILE__DATA_SOURCE;
+
+	/**
+	 * The number of structural features of the '<em>Inserted Generated File</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INSERTED_GENERATED_FILE_FEATURE_COUNT = INSERTED_FILE_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get File Path</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INSERTED_GENERATED_FILE___GET_FILE_PATH = INSERTED_FILE___GET_FILE_PATH;
+
+	/**
+	 * The operation id for the '<em>Get File Accessor</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INSERTED_GENERATED_FILE___GET_FILE_ACCESSOR = INSERTED_FILE___GET_FILE_ACCESSOR;
+
+	/**
+	 * The number of operations of the '<em>Inserted Generated File</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int INSERTED_GENERATED_FILE_OPERATION_COUNT = INSERTED_FILE_OPERATION_COUNT + 0;
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.TextDocument <em>Text Document</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1586,6 +1789,17 @@
 	EClass getLeafBodyPart();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile <em>IGenerated File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>IGenerated File</em>'.
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile
+	 * @generated
+	 */
+	EClass getIGeneratedFile();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.EMFDataSource <em>EMF Data Source</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1780,6 +1994,40 @@
 	EClass getEmptyLine();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell <em>Extended File Reference Cell</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Extended File Reference Cell</em>'.
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell
+	 * @generated
+	 */
+	EClass getExtendedFileReferenceCell();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell#getDatasource <em>Datasource</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the containment reference '<em>Datasource</em>'.
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell#getDatasource()
+	 * @see #getExtendedFileReferenceCell()
+	 * @generated
+	 */
+	EReference getExtendedFileReferenceCell_Datasource();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile <em>Inserted Generated File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Inserted Generated File</em>'.
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile
+	 * @generated
+	 */
+	EClass getInsertedGeneratedFile();
+
+	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2054,6 +2302,17 @@
 		EClass LEAF_BODY_PART = eINSTANCE.getLeafBodyPart();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile <em>IGenerated File</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile
+		 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getIGeneratedFile()
+		 * @generated
+		 */
+		EClass IGENERATED_FILE = eINSTANCE.getIGeneratedFile();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.impl.EMFDataSourceImpl <em>EMF Data Source</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -2226,6 +2485,37 @@
 		 */
 		EClass EMPTY_LINE = eINSTANCE.getEmptyLine();
 
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.impl.ExtendedFileReferenceCellImpl <em>Extended File Reference Cell</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.ExtendedFileReferenceCellImpl
+		 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getExtendedFileReferenceCell()
+		 * @generated
+		 */
+		EClass EXTENDED_FILE_REFERENCE_CELL = eINSTANCE.getExtendedFileReferenceCell();
+
+		/**
+		 * The meta object literal for the '<em><b>Datasource</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference EXTENDED_FILE_REFERENCE_CELL__DATASOURCE = eINSTANCE.getExtendedFileReferenceCell_Datasource();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.impl.InsertedGeneratedFileImpl <em>Inserted Generated File</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.InsertedGeneratedFileImpl
+		 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.impl.DocumentStructurePackageImpl#getInsertedGeneratedFile()
+		 * @generated
+		 */
+		EClass INSERTED_GENERATED_FILE = eINSTANCE.getInsertedGeneratedFile();
+
 	}
 
 } // DocumentStructurePackage
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/EMFDataSource.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/EMFDataSource.java
index ccc629f..0333210 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/EMFDataSource.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/EMFDataSource.java
@@ -57,7 +57,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Eobject</em>' reference.
+	 *            the new value of the '<em>Eobject</em>' reference.
 	 * @see #getEobject()
 	 * @generated
 	 */
@@ -86,7 +86,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Feature</em>' reference.
+	 *            the new value of the '<em>Feature</em>' reference.
 	 * @see #getFeature()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedFileReferenceCell.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedFileReferenceCell.java
new file mode 100644
index 0000000..3432f82
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedFileReferenceCell.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.emf.documentstructure;
+
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Extended File Reference Cell</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Insert a file into the cell
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell#getDatasource <em>Datasource</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructurePackage#getExtendedFileReferenceCell()
+ * @model
+ * @generated
+ */
+public interface ExtendedFileReferenceCell extends FileReferenceCell {
+	/**
+	 * Returns the value of the '<em><b>Datasource</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datasource</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Datasource</em>' containment reference.
+	 * @see #setDatasource(DataSource)
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructurePackage#getExtendedFileReferenceCell_Datasource()
+	 * @model containment="true" ordered="false"
+	 * @generated
+	 */
+	DataSource getDatasource();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell#getDatasource <em>Datasource</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Datasource</em>' containment reference.
+	 * @see #getDatasource()
+	 * @generated
+	 */
+	void setDatasource(DataSource value);
+
+} // ExtendedFileReferenceCell
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedTextCell.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedTextCell.java
index 7242162..6df7cee 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedTextCell.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedTextCell.java
@@ -59,7 +59,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Data Source</em>' containment reference.
+	 *            the new value of the '<em>Data Source</em>' containment reference.
 	 * @see #getDataSource()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedTextListItem.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedTextListItem.java
index 0ae24c0..4264913 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedTextListItem.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/ExtendedTextListItem.java
@@ -55,7 +55,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Datasource</em>' containment reference.
+	 *            the new value of the '<em>Datasource</em>' containment reference.
 	 * @see #getDatasource()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/IGeneratedFile.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/IGeneratedFile.java
new file mode 100644
index 0000000..62f1a7c
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/IGeneratedFile.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.emf.documentstructure;
+
+import org.eclipse.papyrus.model2doc.core.builtintypes.IFileReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IGenerated File</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generated files that could be deleted at the end of the process.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructurePackage#getIGeneratedFile()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface IGeneratedFile extends IFileReference {
+} // IGeneratedFile
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Image.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Image.java
index 26b9cd2..6a44174 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Image.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Image.java
@@ -36,7 +36,7 @@
  * @model
  * @generated
  */
-public interface Image extends DefaultFileReference, LeafBodyPart {
+public interface Image extends DefaultFileReference, LeafBodyPart, IGeneratedFile {
 	/**
 	 * Returns the value of the '<em><b>Caption</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -59,7 +59,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Caption</em>' attribute.
+	 *            the new value of the '<em>Caption</em>' attribute.
 	 * @see #getCaption()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/InsertedGeneratedFile.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/InsertedGeneratedFile.java
new file mode 100644
index 0000000..8424d45
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/InsertedGeneratedFile.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.emf.documentstructure;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Inserted Generated File</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This element reference a generated file which will be inserted in the final document.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructurePackage#getInsertedGeneratedFile()
+ * @model
+ * @generated
+ */
+public interface InsertedGeneratedFile extends InsertedFile, IGeneratedFile {
+} // InsertedGeneratedFile
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Paragraph.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Paragraph.java
index 7ab01df..0c7f732 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Paragraph.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Paragraph.java
@@ -54,7 +54,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Text</em>' attribute.
+	 *            the new value of the '<em>Text</em>' attribute.
 	 * @see #getText()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/StringVersion.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/StringVersion.java
index 1c40a92..d145de7 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/StringVersion.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/StringVersion.java
@@ -58,7 +58,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Version</em>' attribute.
+	 *            the new value of the '<em>Version</em>' attribute.
 	 * @see #getVersion()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TableOfContents.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TableOfContents.java
index 41bb676..9d0e433 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TableOfContents.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TableOfContents.java
@@ -58,7 +58,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Toc Title</em>' attribute.
+	 *            the new value of the '<em>Toc Title</em>' attribute.
 	 * @see #getTocTitle()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TableOfFigures.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TableOfFigures.java
index 0637a3e..bc75490 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TableOfFigures.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TableOfFigures.java
@@ -58,7 +58,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Tof Title</em>' attribute.
+	 *            the new value of the '<em>Tof Title</em>' attribute.
 	 * @see #getTofTitle()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TextDocument.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TextDocument.java
index a31994e..e83ce24 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TextDocument.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/TextDocument.java
@@ -56,7 +56,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Main Title</em>' attribute.
+	 *            the new value of the '<em>Main Title</em>' attribute.
 	 * @see #getMainTitle()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Title.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Title.java
index f60ef9e..3c5a1fd 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Title.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/Title.java
@@ -54,7 +54,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param value
-	 *                  the new value of the '<em>Title</em>' attribute.
+	 *            the new value of the '<em>Title</em>' attribute.
 	 * @see #getTitle()
 	 * @generated
 	 */
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/DocumentStructureFactoryImpl.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/DocumentStructureFactoryImpl.java
index 35b7354..660a4b1 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/DocumentStructureFactoryImpl.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/DocumentStructureFactoryImpl.java
@@ -100,6 +100,10 @@
 			return createInsertedFile();
 		case DocumentStructurePackage.EMPTY_LINE:
 			return createEmptyLine();
+		case DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL:
+			return createExtendedFileReferenceCell();
+		case DocumentStructurePackage.INSERTED_GENERATED_FILE:
+			return createInsertedGeneratedFile();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
@@ -292,6 +296,30 @@
 	 * @generated
 	 */
 	@Override
+	public ExtendedFileReferenceCell createExtendedFileReferenceCell() {
+		ExtendedFileReferenceCellImpl extendedFileReferenceCell = new ExtendedFileReferenceCellImpl();
+		return extendedFileReferenceCell;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public InsertedGeneratedFile createInsertedGeneratedFile() {
+		InsertedGeneratedFileImpl insertedGeneratedFile = new InsertedGeneratedFileImpl();
+		return insertedGeneratedFile;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public DocumentStructurePackage getDocumentStructurePackage() {
 		return (DocumentStructurePackage) getEPackage();
 	}
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/DocumentStructurePackageImpl.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/DocumentStructurePackageImpl.java
index e70205f..a5e3c3f 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/DocumentStructurePackageImpl.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/DocumentStructurePackageImpl.java
@@ -38,10 +38,13 @@
 import org.eclipse.papyrus.model2doc.emf.documentstructure.EMFDataSource;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedBasicList;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedBasicTable;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedTextCell;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedTextListItem;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.Image;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedFile;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.LeafBodyPart;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.EmptyLine;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.Paragraph;
@@ -163,6 +166,14 @@
 	 *
 	 * @generated
 	 */
+	private EClass iGeneratedFileEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	private EClass emfDataSourceEClass = null;
 
 	/**
@@ -238,6 +249,22 @@
 	private EClass emptyLineEClass = null;
 
 	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass extendedFileReferenceCellEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass insertedGeneratedFileEClass = 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.
@@ -594,6 +621,17 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getIGeneratedFile() {
+		return iGeneratedFileEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public EClass getEMFDataSource() {
 		return emfDataSourceEClass;
 	}
@@ -781,6 +819,39 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getExtendedFileReferenceCell() {
+		return extendedFileReferenceCellEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getExtendedFileReferenceCell_Datasource() {
+		return (EReference) extendedFileReferenceCellEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getInsertedGeneratedFile() {
+		return insertedGeneratedFileEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public DocumentStructureFactory getDocumentStructureFactory() {
 		return (DocumentStructureFactory) getEFactoryInstance();
 	}
@@ -845,6 +916,8 @@
 
 		leafBodyPartEClass = createEClass(LEAF_BODY_PART);
 
+		iGeneratedFileEClass = createEClass(IGENERATED_FILE);
+
 		emfDataSourceEClass = createEClass(EMF_DATA_SOURCE);
 		createEReference(emfDataSourceEClass, EMF_DATA_SOURCE__EOBJECT);
 		createEReference(emfDataSourceEClass, EMF_DATA_SOURCE__FEATURE);
@@ -871,6 +944,11 @@
 		insertedFileEClass = createEClass(INSERTED_FILE);
 
 		emptyLineEClass = createEClass(EMPTY_LINE);
+
+		extendedFileReferenceCellEClass = createEClass(EXTENDED_FILE_REFERENCE_CELL);
+		createEReference(extendedFileReferenceCellEClass, EXTENDED_FILE_REFERENCE_CELL__DATASOURCE);
+
+		insertedGeneratedFileEClass = createEClass(INSERTED_GENERATED_FILE);
 	}
 
 	/**
@@ -918,7 +996,9 @@
 		titleEClass.getESuperTypes().add(this.getComposedBodyPart());
 		imageEClass.getESuperTypes().add(theBuiltInTypesPackage.getDefaultFileReference());
 		imageEClass.getESuperTypes().add(this.getLeafBodyPart());
+		imageEClass.getESuperTypes().add(this.getIGeneratedFile());
 		leafBodyPartEClass.getESuperTypes().add(this.getBodyPart());
+		iGeneratedFileEClass.getESuperTypes().add(theBuiltInTypesPackage.getIFileReference());
 		emfDataSourceEClass.getESuperTypes().add(this.getDataSource());
 		tableOfFiguresEClass.getESuperTypes().add(this.getTextDocumentPart());
 		tableOfContentsEClass.getESuperTypes().add(this.getTextDocumentPart());
@@ -932,6 +1012,9 @@
 		insertedFileEClass.getESuperTypes().add(theBuiltInTypesPackage.getDefaultFileReference());
 		insertedFileEClass.getESuperTypes().add(this.getLeafBodyPart());
 		emptyLineEClass.getESuperTypes().add(this.getLeafBodyPart());
+		extendedFileReferenceCellEClass.getESuperTypes().add(theBuiltInTypesPackage.getFileReferenceCell());
+		insertedGeneratedFileEClass.getESuperTypes().add(this.getInsertedFile());
+		insertedGeneratedFileEClass.getESuperTypes().add(this.getIGeneratedFile());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(textDocumentEClass, TextDocument.class, "TextDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
@@ -976,6 +1059,8 @@
 
 		initEClass(leafBodyPartEClass, LeafBodyPart.class, "LeafBodyPart", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
+		initEClass(iGeneratedFileEClass, IGeneratedFile.class, "IGeneratedFile", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
 		initEClass(emfDataSourceEClass, EMFDataSource.class, "EMFDataSource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEReference(getEMFDataSource_Eobject(), theEcorePackage.getEObject(), null, "eobject", null, 1, 1, EMFDataSource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, //$NON-NLS-1$
 				!IS_ORDERED);
@@ -1007,6 +1092,12 @@
 
 		initEClass(emptyLineEClass, EmptyLine.class, "EmptyLine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
+		initEClass(extendedFileReferenceCellEClass, ExtendedFileReferenceCell.class, "ExtendedFileReferenceCell", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getExtendedFileReferenceCell_Datasource(), this.getDataSource(), null, "datasource", null, 0, 1, ExtendedFileReferenceCell.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, //$NON-NLS-1$
+				!IS_DERIVED, !IS_ORDERED);
+
+		initEClass(insertedGeneratedFileEClass, InsertedGeneratedFile.class, "InsertedGeneratedFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
 		// Create resource
 		createResource(eNS_URI);
 
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/ExtendedFileReferenceCellImpl.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/ExtendedFileReferenceCellImpl.java
new file mode 100644
index 0000000..0d18427
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/ExtendedFileReferenceCellImpl.java
@@ -0,0 +1,209 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.emf.documentstructure.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.model2doc.core.builtintypes.impl.FileReferenceCellImpl;
+
+import org.eclipse.papyrus.model2doc.emf.documentstructure.DataSource;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructurePackage;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extended File Reference Cell</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.model2doc.emf.documentstructure.impl.ExtendedFileReferenceCellImpl#getDatasource <em>Datasource</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExtendedFileReferenceCellImpl extends FileReferenceCellImpl implements ExtendedFileReferenceCell {
+	/**
+	 * The cached value of the '{@link #getDatasource() <em>Datasource</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getDatasource()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataSource datasource;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected ExtendedFileReferenceCellImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DocumentStructurePackage.Literals.EXTENDED_FILE_REFERENCE_CELL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public DataSource getDatasource() {
+		return datasource;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public NotificationChain basicSetDatasource(DataSource newDatasource, NotificationChain msgs) {
+		DataSource oldDatasource = datasource;
+		datasource = newDatasource;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE, oldDatasource, newDatasource);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setDatasource(DataSource newDatasource) {
+		if (newDatasource != datasource) {
+			NotificationChain msgs = null;
+			if (datasource != null) {
+				msgs = ((InternalEObject) datasource).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE, null, msgs);
+			}
+			if (newDatasource != null) {
+				msgs = ((InternalEObject) newDatasource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE, null, msgs);
+			}
+			msgs = basicSetDatasource(newDatasource, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		} else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE, newDatasource, newDatasource));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE:
+			return basicSetDatasource(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE:
+			return getDatasource();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE:
+			setDatasource((DataSource) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE:
+			setDatasource((DataSource) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL__DATASOURCE:
+			return datasource != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // ExtendedFileReferenceCellImpl
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/ImageImpl.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/ImageImpl.java
index 6ad09d7..3ee1cf9 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/ImageImpl.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/ImageImpl.java
@@ -24,6 +24,7 @@
 import org.eclipse.papyrus.model2doc.emf.documentstructure.BodyPart;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.DataSource;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructurePackage;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.Image;
 import org.eclipse.papyrus.model2doc.emf.documentstructure.LeafBodyPart;
 
@@ -287,6 +288,12 @@
 				return -1;
 			}
 		}
+		if (baseClass == IGeneratedFile.class) {
+			switch (derivedFeatureID) {
+			default:
+				return -1;
+			}
+		}
 		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
 	}
 
@@ -312,6 +319,12 @@
 				return -1;
 			}
 		}
+		if (baseClass == IGeneratedFile.class) {
+			switch (baseFeatureID) {
+			default:
+				return -1;
+			}
+		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/InsertedGeneratedFileImpl.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/InsertedGeneratedFileImpl.java
new file mode 100644
index 0000000..6e4c21b
--- /dev/null
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/impl/InsertedGeneratedFileImpl.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2019 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ *
+ *  SPDX-License-Identifier: EPL-2.0
+ *
+ *  Contributors:
+ *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package org.eclipse.papyrus.model2doc.emf.documentstructure.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.model2doc.emf.documentstructure.DocumentStructurePackage;
+import org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Inserted Generated File</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class InsertedGeneratedFileImpl extends InsertedFileImpl implements InsertedGeneratedFile {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected InsertedGeneratedFileImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DocumentStructurePackage.Literals.INSERTED_GENERATED_FILE;
+	}
+
+} // InsertedGeneratedFileImpl
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/util/DocumentStructureAdapterFactory.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/util/DocumentStructureAdapterFactory.java
index 93adcd0..f09e5f8 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/util/DocumentStructureAdapterFactory.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/util/DocumentStructureAdapterFactory.java
@@ -26,6 +26,7 @@
 import org.eclipse.papyrus.model2doc.core.builtintypes.BasicTable;
 import org.eclipse.papyrus.model2doc.core.builtintypes.Cell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.DefaultFileReference;
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.IFileReference;
 import org.eclipse.papyrus.model2doc.core.builtintypes.ListItem;
 import org.eclipse.papyrus.model2doc.core.builtintypes.TextCell;
@@ -154,6 +155,11 @@
 		}
 
 		@Override
+		public Adapter caseIGeneratedFile(IGeneratedFile object) {
+			return createIGeneratedFileAdapter();
+		}
+
+		@Override
 		public Adapter caseEMFDataSource(EMFDataSource object) {
 			return createEMFDataSourceAdapter();
 		}
@@ -204,6 +210,16 @@
 		}
 
 		@Override
+		public Adapter caseExtendedFileReferenceCell(ExtendedFileReferenceCell object) {
+			return createExtendedFileReferenceCellAdapter();
+		}
+
+		@Override
+		public Adapter caseInsertedGeneratedFile(InsertedGeneratedFile object) {
+			return createInsertedGeneratedFileAdapter();
+		}
+
+		@Override
 		public Adapter caseIFileReference(IFileReference object) {
 			return createIFileReferenceAdapter();
 		}
@@ -259,6 +275,11 @@
 		}
 
 		@Override
+		public Adapter caseFileReferenceCell(FileReferenceCell object) {
+			return createFileReferenceCellAdapter();
+		}
+
+		@Override
 		public Adapter defaultCase(EObject object) {
 			return createEObjectAdapter();
 		}
@@ -270,7 +291,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param target
-	 *                   the object to adapt.
+	 *            the object to adapt.
 	 * @return the adapter for the <code>target</code>.
 	 * @generated
 	 */
@@ -461,6 +482,21 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile <em>IGenerated File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.IGeneratedFile
+	 * @generated
+	 */
+	public Adapter createIGeneratedFileAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.EMFDataSource <em>EMF Data Source</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -611,6 +647,51 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell <em>Extended File Reference Cell</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.ExtendedFileReferenceCell
+	 * @generated
+	 */
+	public Adapter createExtendedFileReferenceCellAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell <em>File Reference Cell</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell
+	 * @generated
+	 */
+	public Adapter createFileReferenceCellAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile <em>Inserted Generated File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.model2doc.emf.documentstructure.InsertedGeneratedFile
+	 * @generated
+	 */
+	public Adapter createInsertedGeneratedFileAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.model2doc.core.builtintypes.AbstractTable <em>Abstract Table</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/util/DocumentStructureSwitch.java b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/util/DocumentStructureSwitch.java
index 72a7e19..222a3bb 100755
--- a/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/util/DocumentStructureSwitch.java
+++ b/plugins/emf/org.eclipse.papyrus.model2doc.emf.documentstructure/src-gen/org/eclipse/papyrus/model2doc/emf/documentstructure/util/DocumentStructureSwitch.java
@@ -24,6 +24,7 @@
 import org.eclipse.papyrus.model2doc.core.builtintypes.BasicTable;
 import org.eclipse.papyrus.model2doc.core.builtintypes.Cell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.DefaultFileReference;
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.IFileReference;
 import org.eclipse.papyrus.model2doc.core.builtintypes.ListItem;
 import org.eclipse.papyrus.model2doc.core.builtintypes.TextCell;
@@ -74,7 +75,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param ePackage
-	 *                     the package in question.
+	 *            the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
@@ -205,6 +206,9 @@
 				result = caseLeafBodyPart(image);
 			}
 			if (result == null) {
+				result = caseIGeneratedFile(image);
+			}
+			if (result == null) {
 				result = caseIFileReference(image);
 			}
 			if (result == null) {
@@ -226,6 +230,17 @@
 			}
 			return result;
 		}
+		case DocumentStructurePackage.IGENERATED_FILE: {
+			IGeneratedFile iGeneratedFile = (IGeneratedFile) theEObject;
+			T result = caseIGeneratedFile(iGeneratedFile);
+			if (result == null) {
+				result = caseIFileReference(iGeneratedFile);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
 		case DocumentStructurePackage.EMF_DATA_SOURCE: {
 			EMFDataSource emfDataSource = (EMFDataSource) theEObject;
 			T result = caseEMFDataSource(emfDataSource);
@@ -375,6 +390,49 @@
 			}
 			return result;
 		}
+		case DocumentStructurePackage.EXTENDED_FILE_REFERENCE_CELL: {
+			ExtendedFileReferenceCell extendedFileReferenceCell = (ExtendedFileReferenceCell) theEObject;
+			T result = caseExtendedFileReferenceCell(extendedFileReferenceCell);
+			if (result == null) {
+				result = caseFileReferenceCell(extendedFileReferenceCell);
+			}
+			if (result == null) {
+				result = caseCell(extendedFileReferenceCell);
+			}
+			if (result == null) {
+				result = caseStyledElement(extendedFileReferenceCell);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case DocumentStructurePackage.INSERTED_GENERATED_FILE: {
+			InsertedGeneratedFile insertedGeneratedFile = (InsertedGeneratedFile) theEObject;
+			T result = caseInsertedGeneratedFile(insertedGeneratedFile);
+			if (result == null) {
+				result = caseInsertedFile(insertedGeneratedFile);
+			}
+			if (result == null) {
+				result = caseIGeneratedFile(insertedGeneratedFile);
+			}
+			if (result == null) {
+				result = caseDefaultFileReference(insertedGeneratedFile);
+			}
+			if (result == null) {
+				result = caseLeafBodyPart(insertedGeneratedFile);
+			}
+			if (result == null) {
+				result = caseIFileReference(insertedGeneratedFile);
+			}
+			if (result == null) {
+				result = caseBodyPart(insertedGeneratedFile);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
 		default:
 			return defaultCase(theEObject);
 		}
@@ -388,7 +446,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Text Document</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -405,7 +463,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Text Document Part</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -422,7 +480,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Document</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -439,7 +497,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Version</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -456,7 +514,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Body</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -473,7 +531,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Body Part</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -490,7 +548,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Data Source</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -507,7 +565,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Paragraph</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -524,7 +582,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Composed Body Part</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -541,7 +599,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Title</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -558,7 +616,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Image</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -575,7 +633,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Leaf Body Part</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -585,6 +643,23 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IGenerated File</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>IGenerated File</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIGeneratedFile(IGeneratedFile object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EMF Data Source</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -592,7 +667,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>EMF Data Source</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -609,7 +684,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Table Of Figures</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -626,7 +701,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Table Of Contents</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -643,7 +718,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Extended Basic Table</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -660,7 +735,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Extended Text Cell</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -677,7 +752,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Extended Basic List</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -694,7 +769,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Extended Text List Item</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -711,7 +786,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>String Version</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -728,7 +803,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Inserted File</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -745,7 +820,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Empty Line</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -755,6 +830,57 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Extended File Reference Cell</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Extended File Reference Cell</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseExtendedFileReferenceCell(ExtendedFileReferenceCell object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>File Reference Cell</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>File Reference Cell</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFileReferenceCell(FileReferenceCell object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Inserted Generated File</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Inserted Generated File</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseInsertedGeneratedFile(InsertedGeneratedFile object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Abstract Table</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -762,7 +888,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Abstract Table</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -779,7 +905,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Basic Table</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -796,7 +922,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Styled Element</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -813,7 +939,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Cell</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -830,7 +956,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Text Cell</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -847,7 +973,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Abstract List</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -864,7 +990,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Basic List</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -881,7 +1007,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>List Item</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -898,7 +1024,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Text List Item</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -915,7 +1041,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>IFile Reference</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -932,7 +1058,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            the target of the switch.
 	 * @return the result of interpreting the object as an instance of '<em>Default File Reference</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
@@ -949,7 +1075,7 @@
 	 * <!-- end-user-doc -->
 	 *
 	 * @param object
-	 *                   the target of the switch.
+	 *            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
diff --git a/plugins/odt/org.eclipse.papyrus.model2doc.odt/src/org/eclipse/papyrus/model2doc/odt/internal/util/WriteUtil.java b/plugins/odt/org.eclipse.papyrus.model2doc.odt/src/org/eclipse/papyrus/model2doc/odt/internal/util/WriteUtil.java
index 34f927f..ea1a58b 100755
--- a/plugins/odt/org.eclipse.papyrus.model2doc.odt/src/org/eclipse/papyrus/model2doc/odt/internal/util/WriteUtil.java
+++ b/plugins/odt/org.eclipse.papyrus.model2doc.odt/src/org/eclipse/papyrus/model2doc/odt/internal/util/WriteUtil.java
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * Copyright (c) 2019-2020 CEA LIST.
+ * Copyright (c) 2019-2021 CEA LIST.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,11 +13,13 @@
  *	Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
  *  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - bug 559826
  * 	Pauline DEVILLE (CEA LIST) pauline.deville@cea.fr - Bug 569249
+ * 	Pauline DEVILLE (CEA LIST) pauline.deville@cea.fr - Bug 570290
  *
  *****************************************************************************/
 package org.eclipse.papyrus.model2doc.odt.internal.util;
 
 import java.io.File;
+import java.net.URL;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.Iterator;
@@ -27,6 +29,7 @@
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.papyrus.model2doc.core.builtintypes.AbstractTable;
 import org.eclipse.papyrus.model2doc.core.builtintypes.Cell;
+import org.eclipse.papyrus.model2doc.core.builtintypes.FileReferenceCell;
 import org.eclipse.papyrus.model2doc.core.builtintypes.TextCell;
 import org.eclipse.papyrus.model2doc.core.service.FileIOService;
 import org.eclipse.papyrus.model2doc.core.service.FileIOServiceImpl;
@@ -399,6 +402,10 @@
 				final Cell cell = tableCellIterator.next();
 				if (cell instanceof TextCell) {
 					cellText.setString(((TextCell) cell).getText());
+				} else if (cell instanceof FileReferenceCell) {
+					XTextCursor cursor = cellText.createTextCursor();
+					final URL url = ((FileReferenceCell) cell).getFileReference().getFileAccessor().createInputFileURL();
+					insertTextFile(cursor, url.toString());
 				} else {
 					Activator.log.warn(NLS.bind("--The cell eClass {0} is not managed by the transcription", cell.eClass().getName())); //$NON-NLS-1$
 				}
