Merge branch 'master' into bugs/397508
diff --git a/plugins/org.eclipse.uml2.uml.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.uml2.uml.editor/META-INF/MANIFEST.MF
index fc27f35..bc3a3fe 100644
--- a/plugins/org.eclipse.uml2.uml.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.uml2.uml.editor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.uml2.uml.editor; singleton:=true
-Bundle-Version: 4.1.100.qualifier
+Bundle-Version: 4.2.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.uml2.uml.editor.UMLEditorPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowDown.gif b/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowDown.gif
new file mode 100644
index 0000000..072b184
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowDown.gif
Binary files differ
diff --git a/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowLeft.gif b/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowLeft.gif
new file mode 100644
index 0000000..4fb4150
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowLeft.gif
Binary files differ
diff --git a/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowRight.gif b/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowRight.gif
new file mode 100644
index 0000000..1956789
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowRight.gif
Binary files differ
diff --git a/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowUp.gif b/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowUp.gif
new file mode 100644
index 0000000..0716475
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.editor/icons/full/etool16/ArrowUp.gif
Binary files differ
diff --git a/plugins/org.eclipse.uml2.uml.editor/plugin.properties b/plugins/org.eclipse.uml2.uml.editor/plugin.properties
index f654a85..8a25d85 100644
--- a/plugins/org.eclipse.uml2.uml.editor/plugin.properties
+++ b/plugins/org.eclipse.uml2.uml.editor/plugin.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2005, 2011 IBM Corporation, Embarcadero Technologies, CEA, and others.
+# Copyright (c) 2005, 2013 IBM Corporation, Embarcadero Technologies, CEA, and others.
 # All rights reserved.   This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -8,8 +8,8 @@
 #   IBM - initial API and implementation
 #   Kenn Hussey (Embarcadero Technologies) - 227392, 226178, 226101, 204200
 #   Kenn Hussey (CEA) - 327039
+#   Christian W. Damus (CEA) - 326915
 #
-# $Id: plugin.properties,v 1.18 2009/04/30 21:15:28 jbruck Exp $
 
 # NLS_MESSAGEFORMAT_VAR
 
@@ -131,6 +131,23 @@
 
 _UI_Save_All_Resources_As = Save all ''.{0}'' resources with new file extension of ''.{1}''?
 
+# 0 - the client-supplied dialog label
+# 1 - and the user-friendly label of the object being edited
+_UI_ChoicesDialog_title =  {0} -- {1}
+
+_UI_ApplicableStereotypes_label = Applicable Stereotypes
+_UI_AvailableProfiles_label = Available Profiles
+_UI_AppliedStereotypes_label = Applied Stereotypes
+_UI_AppliedProfiles_label = Applied Profiles
+
+_UI_StereotypesToApply_label = Stereotypes to Apply
+_UI_StereotypesToUnapply_label = Stereotypes to Unapply
+_UI_ProfilesToApply_label = Profiles to Apply
+_UI_ProfilesToUnapply_label = Profiles to Unapply
+
+_UI_Apply_label = Apply
+_UI_Unapply_label = Unapply
+
 # START NON-TRANSLATABLE
 _UI_UMLEditorFilenameExtensions = uml
 # END NON-TRANSLATABLE
diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/ApplyProfileAction.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/ApplyProfileAction.java
index 63fad7a..211f9f9 100644
--- a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/ApplyProfileAction.java
+++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/ApplyProfileAction.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010 IBM Corporation, Embarcadero Technologies, and others.
+ * Copyright (c) 2005, 2013 IBM Corporation, Embarcadero Technologies, CEA, and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -9,8 +9,8 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 215488
  *   Kenn Hussey - 286329
+ *   Christian W. Damus (CEA) - 326915
  *
- * $Id: ApplyProfileAction.java,v 1.9 2010/03/02 03:10:43 khussey Exp $
  */
 package org.eclipse.uml2.uml.editor.actions;
 
@@ -28,13 +28,15 @@
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.ui.celleditor.FeatureEditorDialog;
 import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.window.Window;
 import org.eclipse.uml2.uml.Profile;
 import org.eclipse.uml2.uml.ProfileApplication;
-import org.eclipse.uml2.uml.UMLPackage;
 import org.eclipse.uml2.uml.UMLPlugin;
 import org.eclipse.uml2.uml.editor.UMLEditorPlugin;
+import org.eclipse.uml2.uml.editor.dialogs.AbstractChoicesDialogDelegate;
+import org.eclipse.uml2.uml.editor.dialogs.ChoicesDialog;
 import org.eclipse.uml2.uml.util.UMLSwitch;
 
 public class ApplyProfileAction
@@ -113,20 +115,53 @@
 			String label = UMLEditorPlugin.INSTANCE
 				.getString("_UI_ApplyProfileActionCommand_label"); //$NON-NLS-1$
 
-			final FeatureEditorDialog dialog = new FeatureEditorDialog(
-				workbenchPart.getSite().getShell(), getLabelProvider(),
-				package_, UMLPackage.Literals.PROFILE, Collections.EMPTY_LIST,
-				label, choiceOfValues, false, false, true);
+			final ChoicesDialog<Profile> dialog = new ChoicesDialog<Profile>(
+				workbenchPart.getSite().getShell(), package_, label,
+				new AbstractChoicesDialogDelegate<Profile>(Profile.class) {
+
+					@Override
+					public String getChoicesLabelText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_AvailableProfiles_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getValuesLabelText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_ProfilesToApply_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getAddButtonText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_Apply_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getRemoveButtonText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_Unapply_label"); //$NON-NLS-1$
+					}
+
+					public ILabelProvider getLabelProvider() {
+						return ApplyProfileAction.this.getLabelProvider();
+					}
+
+					public Collection<Profile> getChoiceOfValues() {
+						return choiceOfValues;
+					}
+				});
 			dialog.open();
 
-			if (dialog.getReturnCode() == FeatureEditorDialog.OK) {
+			if ((dialog.getReturnCode() == Window.OK)
+				&& !dialog.getResult().isEmpty()) {
 				editingDomain.getCommandStack().execute(
 					new RefreshingChangeCommand(editingDomain, new Runnable() {
 
 						public void run() {
 
-							for (Object result : dialog.getResult()) {
-								package_.applyProfile((Profile) result);
+							for (Profile result : dialog.getResult()) {
+								package_.applyProfile(result);
 							}
 						}
 					}, label));
diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/ApplyStereotypeAction.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/ApplyStereotypeAction.java
index 0851f1f..f73bfb1 100644
--- a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/ApplyStereotypeAction.java
+++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/ApplyStereotypeAction.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010 IBM Corporation and others.
+ * Copyright (c) 2005, 2013 IBM Corporation, CEA, and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,8 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329
+ *   Christian W. Damus (CEA) - 326915
  *
- * $Id: ApplyStereotypeAction.java,v 1.6 2010/03/02 03:10:43 khussey Exp $
  */
 package org.eclipse.uml2.uml.editor.actions;
 
@@ -22,12 +22,14 @@
 import org.eclipse.emf.common.command.IdentityCommand;
 import org.eclipse.emf.common.command.UnexecutableCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.ui.celleditor.FeatureEditorDialog;
 import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.window.Window;
 import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Stereotype;
-import org.eclipse.uml2.uml.UMLPackage;
 import org.eclipse.uml2.uml.editor.UMLEditorPlugin;
+import org.eclipse.uml2.uml.editor.dialogs.AbstractChoicesDialogDelegate;
+import org.eclipse.uml2.uml.editor.dialogs.ChoicesDialog;
 
 public class ApplyStereotypeAction
 		extends UMLCommandAction {
@@ -55,7 +57,7 @@
 		if (command != UnexecutableCommand.INSTANCE) {
 			final Element element = (Element) collection.iterator().next();
 
-			List<Stereotype> choiceOfValues = new ArrayList<Stereotype>();
+			final List<Stereotype> choiceOfValues = new ArrayList<Stereotype>();
 
 			for (Stereotype applicableStereotype : element
 				.getApplicableStereotypes()) {
@@ -71,20 +73,56 @@
 			String label = UMLEditorPlugin.INSTANCE
 				.getString("_UI_ApplyStereotypeActionCommand_label"); //$NON-NLS-1$
 
-			final FeatureEditorDialog dialog = new FeatureEditorDialog(
-				workbenchPart.getSite().getShell(), getLabelProvider(),
-				element, UMLPackage.Literals.ELEMENT, Collections.EMPTY_LIST,
-				label, choiceOfValues, false, false, true);
+			final ChoicesDialog<Stereotype> dialog = new ChoicesDialog<Stereotype>(
+				workbenchPart.getSite().getShell(),
+				element,
+				label,
+				new AbstractChoicesDialogDelegate<Stereotype>(Stereotype.class) {
+
+					@Override
+					public String getChoicesLabelText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_ApplicableStereotypes_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getValuesLabelText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_StereotypesToApply_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getAddButtonText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_Apply_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getRemoveButtonText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_Unapply_label"); //$NON-NLS-1$
+					}
+
+					public ILabelProvider getLabelProvider() {
+						return ApplyStereotypeAction.this.getLabelProvider();
+					}
+
+					public Collection<Stereotype> getChoiceOfValues() {
+						return choiceOfValues;
+					}
+				});
 			dialog.open();
 
-			if (dialog.getReturnCode() == FeatureEditorDialog.OK) {
+			if ((dialog.getReturnCode() == Window.OK)
+				&& !dialog.getResult().isEmpty()) {
+
 				editingDomain.getCommandStack().execute(
 					new RefreshingChangeCommand(editingDomain, new Runnable() {
 
 						public void run() {
 
-							for (Object result : dialog.getResult()) {
-								element.applyStereotype((Stereotype) result);
+							for (Stereotype result : dialog.getResult()) {
+								element.applyStereotype(result);
 							}
 						}
 					}, label));
diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UMLCommandAction.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UMLCommandAction.java
index 082a239..c5bf281 100644
--- a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UMLCommandAction.java
+++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UMLCommandAction.java
@@ -8,6 +8,7 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (CEA) - 173565
+ *   Christian W. Damus (CEA) - 326915
  *
  */
 package org.eclipse.uml2.uml.editor.actions;
@@ -92,6 +93,11 @@
 	public void setActiveEditor(IAction action, IEditorPart editorPart) {
 		super.setActiveEditor(action, editorPart);
 
+		if (labelProvider != null) {
+			// clean up the current label provider
+			labelProvider.dispose();
+		}
+
 		labelProvider = editorPart == null
 			? null
 			: new AdapterFactoryLabelProvider(getAdapterFactory()) {
diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UnapplyProfileAction.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UnapplyProfileAction.java
index 8cc9611..5925c3e 100644
--- a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UnapplyProfileAction.java
+++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UnapplyProfileAction.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010 IBM Corporation and others.
+ * Copyright (c) 2005, 2013 IBM Corporation, CEA, and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,8 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329
+ *   Christian W. Damus (CEA) - 326915
  *
- * $Id: UnapplyProfileAction.java,v 1.6 2010/03/02 03:10:43 khussey Exp $
  */
 package org.eclipse.uml2.uml.editor.actions;
 
@@ -22,11 +22,13 @@
 import org.eclipse.emf.common.command.IdentityCommand;
 import org.eclipse.emf.common.command.UnexecutableCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.ui.celleditor.FeatureEditorDialog;
 import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.window.Window;
 import org.eclipse.uml2.uml.Profile;
-import org.eclipse.uml2.uml.UMLPackage;
 import org.eclipse.uml2.uml.editor.UMLEditorPlugin;
+import org.eclipse.uml2.uml.editor.dialogs.AbstractChoicesDialogDelegate;
+import org.eclipse.uml2.uml.editor.dialogs.ChoicesDialog;
 
 public class UnapplyProfileAction
 		extends UMLCommandAction {
@@ -55,8 +57,8 @@
 			final org.eclipse.uml2.uml.Package package_ = (org.eclipse.uml2.uml.Package) collection
 				.iterator().next();
 
-			List<Profile> choiceOfValues = new ArrayList<Profile>(package_
-				.getAppliedProfiles());
+			final List<Profile> choiceOfValues = new ArrayList<Profile>(
+				package_.getAppliedProfiles());
 
 			Collections.<Profile> sort(choiceOfValues,
 				new TextComparator<Profile>());
@@ -65,20 +67,58 @@
 				"_UI_UnapplyProfileActionCommand_label", //$NON-NLS-1$
 				new Object[]{getLabelProvider().getText(package_)});
 
-			final FeatureEditorDialog dialog = new FeatureEditorDialog(
-				workbenchPart.getSite().getShell(), getLabelProvider(),
-				package_, UMLPackage.Literals.PROFILE, Collections.EMPTY_LIST,
-				label, choiceOfValues, false, false, true);
+			final ChoicesDialog<Profile> dialog = new ChoicesDialog<Profile>(
+				workbenchPart.getSite().getShell(), package_, label,
+				new AbstractChoicesDialogDelegate<Profile>(Profile.class) {
+
+					@Override
+					public String getChoicesLabelText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_AppliedProfiles_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getValuesLabelText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_ProfilesToUnapply_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getAddButtonText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_Unapply_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getRemoveButtonText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_Apply_label"); //$NON-NLS-1$
+					}
+
+					public Collection<Profile> getChoiceOfValues() {
+						return choiceOfValues;
+					}
+
+					public ILabelProvider getLabelProvider() {
+						return UnapplyProfileAction.this.getLabelProvider();
+					}
+
+					@Override
+					public boolean allowsReordering() {
+						return false;
+					}
+				});
 			dialog.open();
 
-			if (dialog.getReturnCode() == FeatureEditorDialog.OK) {
+			if ((dialog.getReturnCode() == Window.OK)
+				&& !dialog.getResult().isEmpty()) {
 				editingDomain.getCommandStack().execute(
 					new RefreshingChangeCommand(editingDomain, new Runnable() {
 
 						public void run() {
 
-							for (Object result : dialog.getResult()) {
-								package_.unapplyProfile((Profile) result);
+							for (Profile result : dialog.getResult()) {
+								package_.unapplyProfile(result);
 							}
 						}
 					}, label));
diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UnapplyStereotypeAction.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UnapplyStereotypeAction.java
index 306eaf3..a30e6d7 100644
--- a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UnapplyStereotypeAction.java
+++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/actions/UnapplyStereotypeAction.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010 IBM Corporation and others.
+ * Copyright (c) 2005, 2013 IBM Corporation, CEA, and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,8 +8,8 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 286329
- *
- * $Id: UnapplyStereotypeAction.java,v 1.6 2010/03/02 03:10:43 khussey Exp $
+ *   Christian W. Damus (CEA) - 326915
+ *   
  */
 package org.eclipse.uml2.uml.editor.actions;
 
@@ -22,12 +22,19 @@
 import org.eclipse.emf.common.command.IdentityCommand;
 import org.eclipse.emf.common.command.UnexecutableCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.ui.celleditor.FeatureEditorDialog;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.DelegatingStyledCellLabelProvider;
 import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.window.Window;
 import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Stereotype;
-import org.eclipse.uml2.uml.UMLPackage;
 import org.eclipse.uml2.uml.editor.UMLEditorPlugin;
+import org.eclipse.uml2.uml.editor.dialogs.AbstractChoicesDialogDelegate;
+import org.eclipse.uml2.uml.editor.dialogs.ChoicesDialog;
 
 public class UnapplyStereotypeAction
 		extends UMLCommandAction {
@@ -55,13 +62,10 @@
 		if (command != UnexecutableCommand.INSTANCE) {
 			final Element element = (Element) collection.iterator().next();
 
-			List<Stereotype> choiceOfValues = new ArrayList<Stereotype>();
+			final List<Stereotype> choiceOfValues = new ArrayList<Stereotype>();
 
 			for (Stereotype appliedStereotype : element.getAppliedStereotypes()) {
-
-				if (!element.isStereotypeRequired(appliedStereotype)) {
-					choiceOfValues.add(appliedStereotype);
-				}
+				choiceOfValues.add(appliedStereotype);
 			}
 
 			Collections.<Stereotype> sort(choiceOfValues,
@@ -70,25 +74,104 @@
 			String label = UMLEditorPlugin.INSTANCE
 				.getString("_UI_UnapplyStereotypeActionCommand_label"); //$NON-NLS-1$
 
-			final FeatureEditorDialog dialog = new FeatureEditorDialog(
-				workbenchPart.getSite().getShell(), getLabelProvider(),
-				element, UMLPackage.Literals.ELEMENT, Collections.EMPTY_LIST,
-				label, choiceOfValues, false, false, true);
+			final ChoicesDialog<Stereotype> dialog = new ChoicesDialog<Stereotype>(
+				workbenchPart.getSite().getShell(),
+				element,
+				label,
+				new AbstractChoicesDialogDelegate<Stereotype>(Stereotype.class) {
+
+					@Override
+					public String getChoicesLabelText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_AppliedStereotypes_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getValuesLabelText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_StereotypesToUnapply_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getAddButtonText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_Unapply_label"); //$NON-NLS-1$
+					}
+
+					@Override
+					public String getRemoveButtonText() {
+						return UMLEditorPlugin.INSTANCE
+							.getString("_UI_Apply_label"); //$NON-NLS-1$
+					}
+
+					public ILabelProvider getLabelProvider() {
+						return UnapplyStereotypeAction.this.getLabelProvider();
+					}
+
+					@Override
+					public ILabelProvider createLabelProvider(Viewer viewer) {
+						return new DelegatingStyledCellLabelProvider(
+							new AdapterFactoryLabelProvider.StyledLabelProvider(
+								getAdapterFactory(), viewer) {
+
+								@Override
+								public StyledString getStyledText(Object object) {
+									StyledString result = super
+										.getStyledText(object);
+
+									if (object instanceof Stereotype) {
+										if (element
+											.isStereotypeRequired(((Stereotype) object))) {
+											result.append(" (required)",
+												StyledString.QUALIFIER_STYLER);
+										}
+									}
+
+									return result;
+								}
+							});
+					}
+
+					public Collection<Stereotype> getChoiceOfValues() {
+						return choiceOfValues;
+					}
+
+					@Override
+					public boolean allowsReordering() {
+						return false;
+					}
+
+					@Override
+					public boolean canAdd(IStructuredSelection selection,
+							Collection<Stereotype> values) {
+
+						boolean result = true;
+
+						for (Object next : selection.toList()) {
+							if (element.isStereotypeRequired((Stereotype) next)) {
+								result = false;
+								break;
+							}
+						}
+
+						return result;
+					}
+				});
 			dialog.open();
 
-			if (dialog.getReturnCode() == FeatureEditorDialog.OK) {
+			if ((dialog.getReturnCode() == Window.OK)
+				&& !dialog.getResult().isEmpty()) {
 				editingDomain.getCommandStack().execute(
 					new RefreshingChangeCommand(editingDomain, new Runnable() {
 
 						public void run() {
 
-							for (Object result : dialog.getResult()) {
-								element.unapplyStereotype((Stereotype) result);
+							for (Stereotype result : dialog.getResult()) {
+								element.unapplyStereotype(result);
 							}
 						}
 					}, label));
 			}
 		}
 	}
-
 }
diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/AbstractChoicesDialogDelegate.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/AbstractChoicesDialogDelegate.java
new file mode 100644
index 0000000..6ce7e0c
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/AbstractChoicesDialogDelegate.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2013 CEA and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   Christian W. Damus (CEA) - Initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.editor.dialogs;
+
+import java.util.Collection;
+
+import org.eclipse.emf.edit.ui.EMFEditUIPlugin;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * A partial implementation of the {@link IChoicesDialogDelegate} protocol,
+ * useful for subclassing.
+ * 
+ * @since 4.2
+ */
+public abstract class AbstractChoicesDialogDelegate<T>
+		implements IChoicesDialogDelegate<T> {
+
+	private final Class<T> elementType;
+
+	public AbstractChoicesDialogDelegate(Class<T> elementType) {
+		this.elementType = elementType;
+	}
+
+	public Class<T> getElementType() {
+		return elementType;
+	}
+
+	public String getChoicesLabelText() {
+		return EMFEditUIPlugin.INSTANCE.getString("_UI_Choices_label"); //$NON-NLS-1$
+	}
+
+	public String getValuesLabelText() {
+		return EMFEditUIPlugin.INSTANCE.getString("_UI_Feature_label"); //$NON-NLS-1$
+	}
+
+	public String getAddButtonText() {
+		return EMFEditUIPlugin.INSTANCE.getString("_UI_Add_label"); //$NON-NLS-1$
+	}
+
+	public String getRemoveButtonText() {
+		return EMFEditUIPlugin.INSTANCE.getString("_UI_Remove_label"); //$NON-NLS-1$
+	}
+
+	public ILabelProvider createLabelProvider(Viewer viewer) {
+		return getLabelProvider();
+	}
+
+	public boolean canAdd(IStructuredSelection selection, Collection<T> values) {
+		return true;
+	}
+
+	public boolean canRemove(IStructuredSelection selection,
+			Collection<T> choices) {
+
+		return true;
+	}
+
+	public boolean allowsReordering() {
+		return true;
+	}
+
+	public boolean okPressed(Collection<T> values) {
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/ChoicesDialog.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/ChoicesDialog.java
new file mode 100644
index 0000000..f8e751c
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/ChoicesDialog.java
@@ -0,0 +1,505 @@
+/*
+ * Copyright (c) 2002, 2013 IBM Corporation, CEA, and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   IBM - Initial API and implementation
+ *   Christian W. Damus (CEA) - Adapted FeatureEditorDialog from EMF for bug 326915
+ *
+ */
+package org.eclipse.uml2.uml.editor.dialogs;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ItemProvider;
+import org.eclipse.emf.edit.ui.EMFEditUIPlugin;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.jface.viewers.CellLabelProvider;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.PatternFilter;
+import org.eclipse.uml2.uml.editor.UMLEditorPlugin;
+
+/**
+ * A two-pane dialog that lets the user user choose elements from the left-side
+ * list to add to the right-side list. The elements on the right-side list may
+ * optionally be ordered by moving them up and down.
+ * 
+ * The dialog delegates a variety of decisions to a
+ * {@linkplain IChoicesDialogDelegate delegate}.
+ * 
+ * @since 4.2
+ * 
+ * @see IChoicesDialogDelegate
+ */
+public class ChoicesDialog<T>
+		extends Dialog {
+
+	protected IContentProvider contentProvider;
+
+	protected Object object;
+
+	protected String displayName;
+
+	protected ItemProvider values;
+
+	protected List<T> choiceOfValues;
+
+	protected EList<T> result;
+
+	protected final IChoicesDialogDelegate<T> delegate;
+
+	public ChoicesDialog(Shell parent, Object object, String displayName,
+			IChoicesDialogDelegate<T> delegate) {
+
+		super(parent);
+
+		setShellStyle(getShellStyle() | SWT.RESIZE | SWT.MAX);
+		this.object = object;
+		this.displayName = displayName;
+		this.choiceOfValues = new java.util.ArrayList<T>(
+			delegate.getChoiceOfValues());
+		this.delegate = delegate;
+
+		AdapterFactory adapterFactory = new ComposedAdapterFactory(
+			Collections.<AdapterFactory> emptyList());
+		values = new ItemProvider(adapterFactory, Collections.EMPTY_LIST);
+		contentProvider = new AdapterFactoryContentProvider(adapterFactory);
+	}
+
+	@Override
+	protected void configureShell(Shell shell) {
+		super.configureShell(shell);
+
+		ILabelProvider labelProvider = delegate.getLabelProvider();
+		shell.setText(UMLEditorPlugin.INSTANCE.getString(
+			"_UI_ChoicesDialog_title",
+			new Object[]{displayName,
+				labelProvider.getText(object)}));
+		shell.setImage(labelProvider.getImage(object));
+	}
+
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite contents = (Composite) super.createDialogArea(parent);
+
+		GridLayout contentsGridLayout = (GridLayout) contents.getLayout();
+		contentsGridLayout.numColumns = 3;
+
+		GridData contentsGridData = (GridData) contents.getLayoutData();
+		contentsGridData.horizontalAlignment = SWT.FILL;
+		contentsGridData.verticalAlignment = SWT.FILL;
+
+		Text patternText = null;
+
+		Group filterGroupComposite = new Group(contents, SWT.NONE);
+		filterGroupComposite.setText(EMFEditUIPlugin.INSTANCE
+			.getString("_UI_Choices_pattern_group"));
+		filterGroupComposite.setLayout(new GridLayout(2, false));
+		filterGroupComposite.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT,
+			true, false, 3, 1));
+
+		Label label = new Label(filterGroupComposite, SWT.NONE);
+		label.setText(EMFEditUIPlugin.INSTANCE
+			.getString("_UI_Choices_pattern_label"));
+
+		patternText = new Text(filterGroupComposite, SWT.BORDER | SWT.SEARCH);
+		patternText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+		Composite choiceComposite = new Composite(contents, SWT.NONE);
+		{
+			GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
+			data.horizontalAlignment = SWT.END;
+			choiceComposite.setLayoutData(data);
+
+			GridLayout layout = new GridLayout();
+			data.horizontalAlignment = SWT.FILL;
+			layout.marginHeight = 0;
+			layout.marginWidth = 0;
+			layout.numColumns = 1;
+			choiceComposite.setLayout(layout);
+		}
+
+		Label choiceLabel = new Label(choiceComposite, SWT.NONE);
+		choiceLabel.setText(delegate.getChoicesLabelText());
+		GridData choiceLabelGridData = new GridData();
+		choiceLabelGridData.verticalAlignment = SWT.FILL;
+		choiceLabelGridData.horizontalAlignment = SWT.FILL;
+		choiceLabel.setLayoutData(choiceLabelGridData);
+
+		final Table choiceTable = new Table(choiceComposite, SWT.MULTI
+			| SWT.BORDER);
+		GridData choiceTableGridData = new GridData();
+		choiceTableGridData.widthHint = Display.getCurrent().getBounds().width / 5;
+		choiceTableGridData.heightHint = Display.getCurrent().getBounds().height / 3;
+		choiceTableGridData.verticalAlignment = SWT.FILL;
+		choiceTableGridData.horizontalAlignment = SWT.FILL;
+		choiceTableGridData.grabExcessHorizontalSpace = true;
+		choiceTableGridData.grabExcessVerticalSpace = true;
+		choiceTable.setLayoutData(choiceTableGridData);
+
+		final TableViewer choiceTableViewer = new TableViewer(choiceTable);
+		choiceTableViewer.setContentProvider(new AdapterFactoryContentProvider(
+			new AdapterFactoryImpl()));
+		configureLabelProvider(choiceTableViewer);
+		final PatternFilter filter = new PatternFilter() {
+
+			@Override
+			protected boolean isParentMatch(Viewer viewer, Object element) {
+				return viewer instanceof AbstractTreeViewer
+					&& super.isParentMatch(viewer, element);
+			}
+		};
+		choiceTableViewer.addFilter(filter);
+		if (patternText != null) {
+			patternText.addModifyListener(new ModifyListener() {
+
+				public void modifyText(ModifyEvent e) {
+					filter.setPattern(((Text) e.widget).getText());
+					choiceTableViewer.refresh();
+				}
+			});
+		}
+
+		// enforce uniqueness
+		choiceTableViewer.addFilter(new ViewerFilter() {
+
+			@Override
+			public boolean select(Viewer viewer, Object parentElement,
+					Object element) {
+				return !values.getChildren().contains(element);
+			}
+		});
+		choiceTableViewer.setInput(new ItemProvider(choiceOfValues));
+
+		Composite controlButtons = new Composite(contents, SWT.NONE);
+		GridData controlButtonsGridData = new GridData();
+		controlButtonsGridData.verticalAlignment = SWT.FILL;
+		controlButtonsGridData.horizontalAlignment = SWT.FILL;
+		controlButtons.setLayoutData(controlButtonsGridData);
+
+		GridLayout controlsButtonGridLayout = new GridLayout();
+		controlButtons.setLayout(controlsButtonGridLayout);
+
+		new Label(controlButtons, SWT.NONE);
+
+		final Button addButton = new Button(controlButtons, SWT.PUSH);
+		addButton.setText(delegate.getAddButtonText());
+		addButton.setImage(ExtendedImageRegistry.getInstance().getImage(
+			UMLEditorPlugin.INSTANCE.getImage("full/etool16/ArrowRight.gif"))); //$NON-NLS-1$
+		GridData addButtonGridData = new GridData();
+		addButtonGridData.verticalAlignment = SWT.FILL;
+		addButtonGridData.horizontalAlignment = SWT.FILL;
+		addButton.setLayoutData(addButtonGridData);
+
+		final Button removeButton = new Button(controlButtons, SWT.PUSH);
+		removeButton.setText(delegate.getRemoveButtonText());
+		removeButton.setImage(ExtendedImageRegistry.getInstance().getImage(
+			UMLEditorPlugin.INSTANCE.getImage("full/etool16/ArrowLeft.gif"))); //$NON-NLS-1$
+		GridData removeButtonGridData = new GridData();
+		removeButtonGridData.verticalAlignment = SWT.FILL;
+		removeButtonGridData.horizontalAlignment = SWT.FILL;
+		removeButton.setLayoutData(removeButtonGridData);
+
+		Label spaceLabel = new Label(controlButtons, SWT.NONE);
+		GridData spaceLabelGridData = new GridData();
+		spaceLabelGridData.verticalSpan = 2;
+		spaceLabel.setLayoutData(spaceLabelGridData);
+
+		final boolean allowReorder = delegate.allowsReordering();
+		final Button upButton = allowReorder
+			? new Button(controlButtons, SWT.PUSH)
+			: null;
+		if (allowReorder) {
+			upButton
+				.setText(EMFEditUIPlugin.INSTANCE.getString("_UI_Up_label"));
+			upButton.setImage(ExtendedImageRegistry.getInstance().getImage(
+				UMLEditorPlugin.INSTANCE.getImage("full/etool16/ArrowUp.gif"))); //$NON-NLS-1$
+			GridData upButtonGridData = new GridData();
+			upButtonGridData.verticalAlignment = SWT.FILL;
+			upButtonGridData.horizontalAlignment = SWT.FILL;
+			upButton.setLayoutData(upButtonGridData);
+		}
+
+		final Button downButton = allowReorder
+			? new Button(controlButtons, SWT.PUSH)
+			: null;
+		if (allowReorder) {
+			downButton.setText(EMFEditUIPlugin.INSTANCE
+				.getString("_UI_Down_label"));
+			downButton.setImage(ExtendedImageRegistry.getInstance()
+				.getImage(
+					UMLEditorPlugin.INSTANCE
+						.getImage("full/etool16/ArrowDown.gif"))); //$NON-NLS-1$
+			GridData downButtonGridData = new GridData();
+			downButtonGridData.verticalAlignment = SWT.FILL;
+			downButtonGridData.horizontalAlignment = SWT.FILL;
+			downButton.setLayoutData(downButtonGridData);
+		}
+
+		Composite valuesComposite = new Composite(contents, SWT.NONE);
+		{
+			GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
+			data.horizontalAlignment = SWT.END;
+			valuesComposite.setLayoutData(data);
+
+			GridLayout layout = new GridLayout();
+			data.horizontalAlignment = SWT.FILL;
+			layout.marginHeight = 0;
+			layout.marginWidth = 0;
+			layout.numColumns = 1;
+			valuesComposite.setLayout(layout);
+		}
+
+		Label valuesLabel = new Label(valuesComposite, SWT.NONE);
+		valuesLabel.setText(delegate.getValuesLabelText());
+		GridData featureLabelGridData = new GridData();
+		featureLabelGridData.horizontalSpan = 2;
+		featureLabelGridData.horizontalAlignment = SWT.FILL;
+		featureLabelGridData.verticalAlignment = SWT.FILL;
+		valuesLabel.setLayoutData(featureLabelGridData);
+
+		final Table valuesTable = new Table(valuesComposite, SWT.MULTI
+			| SWT.BORDER);
+		GridData featureTableGridData = new GridData();
+		featureTableGridData.widthHint = Display.getCurrent().getBounds().width / 5;
+		featureTableGridData.heightHint = Display.getCurrent().getBounds().height / 3;
+		featureTableGridData.verticalAlignment = SWT.FILL;
+		featureTableGridData.horizontalAlignment = SWT.FILL;
+		featureTableGridData.grabExcessHorizontalSpace = true;
+		featureTableGridData.grabExcessVerticalSpace = true;
+		valuesTable.setLayoutData(featureTableGridData);
+
+		final TableViewer valuesTableViewer = new TableViewer(valuesTable);
+		valuesTableViewer.setContentProvider(contentProvider);
+		configureLabelProvider(valuesTableViewer);
+		valuesTableViewer.setInput(values);
+		final EList<Object> children = values.getChildren();
+		if (!children.isEmpty()) {
+			valuesTableViewer.setSelection(new StructuredSelection(children
+				.get(0)));
+		}
+
+		choiceTableViewer.addDoubleClickListener(new IDoubleClickListener() {
+
+			public void doubleClick(DoubleClickEvent event) {
+				if (addButton.isEnabled()) {
+					addButton.notifyListeners(SWT.Selection, null);
+				}
+			}
+		});
+
+		valuesTableViewer.addDoubleClickListener(new IDoubleClickListener() {
+
+			public void doubleClick(DoubleClickEvent event) {
+				if (removeButton.isEnabled()) {
+					removeButton.notifyListeners(SWT.Selection, null);
+				}
+			}
+		});
+
+		if (allowReorder) {
+			upButton.addSelectionListener(new SelectionAdapter() {
+
+				@Override
+				public void widgetSelected(SelectionEvent event) {
+					IStructuredSelection selection = (IStructuredSelection) valuesTableViewer
+						.getSelection();
+					int minIndex = 0;
+					for (Iterator<?> i = selection.iterator(); i.hasNext();) {
+						Object value = i.next();
+						int index = children.indexOf(value);
+						children.move(Math.max(index - 1, minIndex++), value);
+					}
+				}
+			});
+
+			downButton.addSelectionListener(new SelectionAdapter() {
+
+				@Override
+				public void widgetSelected(SelectionEvent event) {
+					IStructuredSelection selection = (IStructuredSelection) valuesTableViewer
+						.getSelection();
+					int maxIndex = children.size() - 1;
+					List<?> objects = selection.toList();
+					for (ListIterator<?> i = objects.listIterator(objects
+						.size()); i.hasPrevious();) {
+						Object value = i.previous();
+						int index = children.indexOf(value);
+						children.move(Math.min(index + 1, maxIndex--), value);
+					}
+				}
+			});
+		}
+
+		addButton.addSelectionListener(new SelectionAdapter() {
+
+			// event is null when choiceTableViewer is double clicked
+			@Override
+			public void widgetSelected(SelectionEvent event) {
+				IStructuredSelection selection = (IStructuredSelection) choiceTableViewer
+					.getSelection();
+				for (Iterator<?> i = selection.iterator(); i.hasNext();) {
+					Object value = i.next();
+					if (!children.contains(value)) {
+						children.add(value);
+					}
+				}
+				valuesTableViewer.refresh();
+				valuesTableViewer.setSelection(selection);
+				choiceTableViewer.refresh();
+			}
+		});
+
+		removeButton.addSelectionListener(new SelectionAdapter() {
+
+			// event is null when valuesTableViewer is double clicked
+			@Override
+			public void widgetSelected(SelectionEvent event) {
+				IStructuredSelection selection = (IStructuredSelection) valuesTableViewer
+					.getSelection();
+				Object firstValue = null;
+				for (Iterator<?> i = selection.iterator(); i.hasNext();) {
+					Object value = i.next();
+					if (firstValue == null) {
+						firstValue = value;
+					}
+					children.remove(value);
+				}
+
+				if (!children.isEmpty()) {
+					valuesTableViewer.setSelection(new StructuredSelection(
+						children.get(0)));
+				}
+
+				choiceTableViewer.refresh();
+				choiceTableViewer.setSelection(selection);
+			}
+		});
+
+		choiceTableViewer
+			.addSelectionChangedListener(new ISelectionChangedListener() {
+
+				public void selectionChanged(SelectionChangedEvent event) {
+					addButton.setEnabled(delegate.canAdd(
+						(IStructuredSelection) event.getSelection(),
+						getValues()));
+				}
+			});
+
+		valuesTableViewer
+			.addSelectionChangedListener(new ISelectionChangedListener() {
+
+				public void selectionChanged(SelectionChangedEvent event) {
+					removeButton.setEnabled(delegate.canRemove(
+						(IStructuredSelection) event.getSelection(),
+						getChoices()));
+				}
+			});
+
+		return contents;
+	}
+
+	protected void configureLabelProvider(TableViewer viewer) {
+		final ILabelProvider labelProvider = delegate
+			.createLabelProvider(viewer);
+		if (labelProvider instanceof CellLabelProvider) {
+			// create a table column to install styling support
+			final TableViewerColumn column = new TableViewerColumn(viewer,
+				SWT.LEFT);
+			column.setLabelProvider((CellLabelProvider) labelProvider);
+
+			// pin the width of the column to the table size (only column)
+			viewer.getTable().addControlListener(new ControlAdapter() {
+
+				@Override
+				public void controlResized(ControlEvent e) {
+					column.getColumn().setWidth(
+						((Control) e.widget).getSize().x);
+				}
+			});
+		} else {
+			viewer.setLabelProvider(labelProvider);
+		}
+
+	}
+
+	protected Collection<T> getChoices() {
+		return choiceOfValues;
+	}
+
+	protected EList<T> getValues() {
+		Class<T> type = delegate.getElementType();
+
+		EList<T> result = new BasicEList<T>(values.getChildren().size());
+		for (Object next : values.getChildren()) {
+			if (type.isInstance(next)) {
+				result.add(type.cast(next));
+			}
+		}
+
+		return result;
+	}
+
+	@Override
+	protected void okPressed() {
+		EList<T> values = getValues();
+		if (delegate.okPressed(values)) {
+			result = values;
+			super.okPressed();
+		}
+	}
+
+	@Override
+	public boolean close() {
+		contentProvider.dispose();
+		return super.close();
+	}
+
+	public EList<T> getResult() {
+		return result;
+	}
+}
diff --git a/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/IChoicesDialogDelegate.java b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/IChoicesDialogDelegate.java
new file mode 100644
index 0000000..e1cb039
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml.editor/src/org/eclipse/uml2/uml/editor/dialogs/IChoicesDialogDelegate.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2013 CEA and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   Christian W. Damus (CEA) - Initial API and implementation
+ *
+ */
+package org.eclipse.uml2.uml.editor.dialogs;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * Protocol for a delegate that supplies application-specific information and
+ * decisions to a {@link ChoicesDialog}.
+ * 
+ * @since 4.2
+ * 
+ * @see ChoicesDialog
+ * @see AbstractChoicesDialogDelegate
+ */
+public interface IChoicesDialogDelegate<T> {
+
+	Class<T> getElementType();
+
+	String getChoicesLabelText();
+
+	String getValuesLabelText();
+
+	String getAddButtonText();
+
+	String getRemoveButtonText();
+
+	ILabelProvider getLabelProvider();
+
+	ILabelProvider createLabelProvider(Viewer viewer);
+
+	Collection<? extends T> getChoiceOfValues();
+
+	boolean canAdd(IStructuredSelection selection, Collection<T> values);
+
+	boolean canRemove(IStructuredSelection selection, Collection<T> choices);
+
+	boolean allowsReordering();
+
+	boolean okPressed(Collection<T> values);
+}
diff --git a/plugins/org.eclipse.uml2.uml/model/UML.ecore b/plugins/org.eclipse.uml2.uml/model/UML.ecore
index 24cd3b6..00741ef 100644
--- a/plugins/org.eclipse.uml2.uml/model/UML.ecore
+++ b/plugins/org.eclipse.uml2.uml/model/UML.ecore
@@ -3,31 +3,31 @@
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="uml" nsURI="http://www.eclipse.org/uml2/4.0.0/UML" nsPrefix="uml">
   <eClassifiers xsi:type="ecore:EClass" name="Abstraction" eSuperTypes="#//Dependency">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints."/>
+      <details key="documentation" value="An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" ordered="false"
         eType="#//OpaqueExpression" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified."/>
+        <details key="documentation" value="An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Dependency" eSuperTypes="#//PackageableElement #//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s)."/>
+      <details key="documentation" value="A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="client" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//NamedElement" eOpposite="#//NamedElement/clientDependency">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation."/>
+        <details key="documentation" value="The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="supplier" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//NamedElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific."/>
+        <details key="documentation" value="The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
@@ -35,7 +35,7 @@
   <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
       eSuperTypes="#//NamedElement #//ParameterableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Packageable elements are able to serve as a template parameter.&#xA;A packageable element indicates a named element that may be owned directly by a package."/>
+      <details key="documentation" value="Packageable elements are able to serve as a template parameter.&#xA;A packageable element indicates a named element that may be owned directly by a package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="visibility">
@@ -44,7 +44,7 @@
       <contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind"
           defaultValueLiteral="public">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="Indicates that packageable elements must always have a visibility, i.e., visibility is not optional."/>
+          <details key="documentation" value="Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//NamedElement/visibility"/>
       </contents>
@@ -53,36 +53,36 @@
   <eClassifiers xsi:type="ecore:EClass" name="ParameterableElement" abstract="true"
       eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template."/>
+      <details key="documentation" value="A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="isCompatibleWith" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints.&#xA;result = p->oclIsKindOf(self.oclType)"/>
+        <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints.&#xA;result = p->oclIsKindOf(self.oclType)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
     </eOperations>
     <eOperations name="isTemplateParameter" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.&#xA;result = templateParameter->notEmpty()"/>
+        <details key="documentation" value="The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.&#xA;result = templateParameter->notEmpty()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="owningTemplateParameter"
         ordered="false" eType="#//TemplateParameter" eOpposite="#//TemplateParameter/ownedParameteredElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameter that owns this element."/>
+        <details key="documentation" value="The formal template parameter that owns this element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ParameterableElement/templateParameter #//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" ordered="false"
         eType="#//TemplateParameter" eOpposite="#//TemplateParameter/parameteredElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
+        <details key="documentation" value="The template parameter that exposes this element as a formal parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An element is a constituent of a model. As such, it has the capability of owning other elements."/>
+      <details key="documentation" value="An element is a constituent of a model. As such, it has the capability of owning other elements.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="has_owner" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -419,18 +419,18 @@
     </eOperations>
     <eOperations name="allOwnedElements" ordered="false" upperBound="-1" eType="#//Element">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query allOwnedElements() gives all of the direct and indirect owned elements of an element.&#xA;result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))"/>
+        <details key="documentation" value="The query allOwnedElements() gives all of the direct and indirect owned elements of an element.&#xA;result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="mustBeOwned" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.&#xA;result = true"/>
+        <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.&#xA;result = true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedComment" ordered="false"
         upperBound="-1" eType="#//Comment" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Comments owned by this element."/>
+        <details key="documentation" value="The Comments owned by this element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -438,7 +438,7 @@
         upperBound="-1" eType="#//Element" changeable="false" volatile="true" transient="true"
         derived="true" eOpposite="#//Element/owner">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Elements owned by this element."/>
+        <details key="documentation" value="The Elements owned by this element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
@@ -446,25 +446,25 @@
         eType="#//Element" changeable="false" volatile="true" transient="true" derived="true"
         eOpposite="#//Element/ownedElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Element that owns this element."/>
+        <details key="documentation" value="The Element that owns this element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A comment is a textual annotation that can be attached to a set of elements."/>
+      <details key="documentation" value="A comment is a textual annotation that can be attached to a set of elements.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="annotatedElement" ordered="false"
         upperBound="-1" eType="#//Element">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Element(s) being commented."/>
+        <details key="documentation" value="References the Element(s) being commented.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies a string that is the comment."/>
+        <details key="documentation" value="Specifies a string that is the comment.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
@@ -473,7 +473,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Stereotype" eSuperTypes="#//Class">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass."/>
+      <details key="documentation" value="A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="associationEndOwnership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -624,19 +624,19 @@
     </eOperations>
     <eOperations name="containingProfile" ordered="false" lowerBound="1" eType="#//Profile">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query containingProfile returns the closest profile directly or indirectly containing this stereotype.&#xA;result = self.namespace.oclAsType(Package).containingProfile()"/>
+        <details key="documentation" value="The query containingProfile returns the closest profile directly or indirectly containing this stereotype.&#xA;result = self.namespace.oclAsType(Package).containingProfile()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getProfile" ordered="false" lowerBound="1" eType="#//Profile">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A stereotype must be contained, directly or indirectly, in a profile.&#xA;result = self.containingProfile()"/>
+        <details key="documentation" value="A stereotype must be contained, directly or indirectly, in a profile.&#xA;result = self.containingProfile()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="icon" ordered="false" upperBound="-1"
         eType="#//Image" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements."/>
+        <details key="documentation" value="Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -644,19 +644,19 @@
         lowerBound="1" eType="#//Profile" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The profile that directly or indirectly contains this stereotype."/>
+        <details key="documentation" value="The profile that directly or indirectly contains this stereotype.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//EncapsulatedClassifier #//BehavioredClassifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.&#xA;A class describes a set of objects that share the same specifications of features, constraints, and semantics.&#xA;A class has the capability to have an internal structure and ports.&#xA;Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes."/>
+      <details key="documentation" value="A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.&#xA;A class describes a set of objects that share the same specifications of features, constraints, and semantics.&#xA;A class has the capability to have an internal structure and ports.&#xA;Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
           eType="#//NamedElement">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
+          <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//Classifier/inherit"/>
         <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
@@ -664,7 +664,7 @@
       <contents xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
           eType="#//Property" containment="true" eOpposite="#//Property/class">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
+          <details key="documentation" value="The attributes (i.e. the properties) owned by the class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//StructuredClassifier/ownedAttribute"/>
         <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
@@ -673,7 +673,7 @@
           eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
           defaultValueLiteral="false">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.&#xA;True when a class is abstract."/>
+          <details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.&#xA;True when a class is abstract.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//Classifier/isAbstract"/>
       </contents>
@@ -729,20 +729,20 @@
     </eOperations>
     <eOperations name="getExtensions" ordered="false" upperBound="-1" eType="#//Extension">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Class::/extension : Extension&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Class::/extension : Extension&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getSuperClasses" ordered="false" upperBound="-1" eType="#//Class">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Class::/superClass : Class&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Class::/superClass : Class&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
         eType="#//Operation" containment="true" eOpposite="#//Operation/class">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operations owned by the class."/>
+        <details key="documentation" value="The operations owned by the class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
@@ -750,34 +750,34 @@
         upperBound="-1" eType="#//Extension" changeable="false" volatile="true" transient="true"
         derived="true" eOpposite="#//Extension/metaclass">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class."/>
+        <details key="documentation" value="References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isActive" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class."/>
+        <details key="documentation" value="Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
         eType="#//Classifier" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
+        <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
         upperBound="-1" eType="#//Reception" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Receptions that objects of this class are willing to accept."/>
+        <details key="documentation" value="Receptions that objects of this class are willing to accept.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="superClass" ordered="false"
         upperBound="-1" eType="#//Class" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This gives the superclasses of a class."/>
+        <details key="documentation" value="This gives the superclasses of a class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="redefines" references="#//Classifier/general"/>
     </eStructuralFeatures>
@@ -785,11 +785,11 @@
   <eClassifiers xsi:type="ecore:EClass" name="EncapsulatedClassifier" abstract="true"
       eSuperTypes="#//StructuredClassifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A classifier has the ability to own ports as specific and type checked interaction points."/>
+      <details key="documentation" value="A classifier has the ability to own ports as specific and type checked interaction points.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="getOwnedPorts" ordered="false" upperBound="-1" eType="#//Port">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for EncapsulatedClassifier::/ownedPort : Port&#xA;true"/>
+        <details key="documentation" value="Missing derivation for EncapsulatedClassifier::/ownedPort : Port&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
@@ -797,7 +797,7 @@
         upperBound="-1" eType="#//Port" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a set of ports that an encapsulated classifier owns."/>
+        <details key="documentation" value="References a set of ports that an encapsulated classifier owns.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//StructuredClassifier/ownedAttribute"/>
     </eStructuralFeatures>
@@ -805,7 +805,7 @@
   <eClassifiers xsi:type="ecore:EClass" name="StructuredClassifier" abstract="true"
       eSuperTypes="#//Classifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances."/>
+      <details key="documentation" value="A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="multiplicities" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -853,35 +853,35 @@
     </eOperations>
     <eOperations name="getParts" ordered="false" upperBound="-1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for StructuredClassifier::/part : Property&#xA;true"/>
+        <details key="documentation" value="Missing derivation for StructuredClassifier::/part : Property&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
         eType="#//Property" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the properties owned by the classifier."/>
+        <details key="documentation" value="References the properties owned by the classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember #//StructuredClassifier/role"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
         upperBound="-1" eType="#//Connector" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the connectors owned by the classifier."/>
+        <details key="documentation" value="References the connectors owned by the classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
         eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true."/>
+        <details key="documentation" value="References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" upperBound="-1"
         eType="#//ConnectableElement" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the roles that instances may play in this classifier."/>
+        <details key="documentation" value="References the roles that instances may play in this classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Namespace/member"/>
@@ -889,7 +889,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//Namespace #//RedefinableElement #//Type #//TemplateableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.&#xA;A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.&#xA;Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.&#xA;A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier."/>
+      <details key="documentation" value="A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.&#xA;A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.&#xA;Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.&#xA;A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="ownedTemplateSignature">
@@ -901,21 +901,21 @@
       <contents xsi:type="ecore:EOperation" name="isTemplate" ordered="false" lowerBound="1"
           eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xA;result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate())"/>
+          <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xA;result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate())&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//TemplateableElement/isTemplate"/>
       </contents>
       <contents xsi:type="ecore:EReference" name="ownedTemplateSignature" ordered="false"
           eType="#//TemplateSignature" containment="true" eOpposite="#//RedefinableTemplateSignature/classifier">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
+          <details key="documentation" value="The optional template signature specifying the formal template parameters.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//TemplateableElement/ownedTemplateSignature"/>
       </contents>
       <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
           eType="#//TemplateParameter" eOpposite="#//ClassifierTemplateParameter/%duplicates%/parameteredElement">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
+          <details key="documentation" value="The template parameter that exposes this element as a formal parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
       </contents>
@@ -1068,67 +1068,67 @@
     </eOperations>
     <eOperations name="allFeatures" ordered="false" upperBound="-1" eType="#//Feature">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.&#xA;result = member->select(oclIsKindOf(Feature))"/>
+        <details key="documentation" value="The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.&#xA;result = member->select(oclIsKindOf(Feature))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="allParents" ordered="false" upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.&#xA;result = self.parents()->union(self.parents()->collect(p | p.allParents())"/>
+        <details key="documentation" value="The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.&#xA;result = self.parents()->union(self.parents()->collect(p | p.allParents())&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="conformsTo" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations.&#xA;result = (self=other) or (self.allParents()->includes(other))"/>
+        <details key="documentation" value="The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations.&#xA;result = (self=other) or (self.allParents()->includes(other))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="redefines" references="#//Type/conformsTo"/>
       <eParameters name="other" ordered="false" lowerBound="1" eType="#//Classifier"/>
     </eOperations>
     <eOperations name="getGenerals" ordered="false" upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The general classifiers are the classifiers referenced by the generalization relationships.&#xA;result = self.parents()"/>
+        <details key="documentation" value="The general classifiers are the classifiers referenced by the generalization relationships.&#xA;result = self.parents()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="hasVisibilityOf" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent.&#xA;self.allParents()->including(self)->collect(c | c.member)->includes(n)&#xA;result = (n.visibility &lt;> VisibilityKind::private)"/>
+        <details key="documentation" value="The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent.&#xA;self.allParents()->including(self)->collect(c | c.member)->includes(n)&#xA;result = (n.visibility &lt;> VisibilityKind::private)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
     </eOperations>
     <eOperations name="inherit" ordered="false" upperBound="-1" eType="#//NamedElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.&#xA;result = inhs"/>
+        <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.&#xA;result = inhs&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
     </eOperations>
     <eOperations name="inheritableMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply.&#xA;c.allParents()->includes(self)&#xA;result = member->select(m | c.hasVisibilityOf(m))"/>
+        <details key="documentation" value="The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply.&#xA;c.allParents()->includes(self)&#xA;result = member->select(m | c.hasVisibilityOf(m))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
     </eOperations>
     <eOperations name="getInheritedMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The inheritedMember association is derived by inheriting the inheritable members of the parents.&#xA;result = self.inherit(self.parents()->collect(p|p.inheritableMembers(self))->asSet())"/>
+        <details key="documentation" value="The inheritedMember association is derived by inheriting the inheritable members of the parents.&#xA;result = self.inherit(self.parents()->collect(p|p.inheritableMembers(self))->asSet())&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="maySpecializeType" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints.&#xA;result = self.oclIsKindOf(c.oclType)"/>
+        <details key="documentation" value="The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints.&#xA;result = self.oclIsKindOf(c.oclType)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
     </eOperations>
     <eOperations name="parents" ordered="false" upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query parents() gives all of the immediate ancestors of a generalized Classifier.&#xA;result = generalization.general"/>
+        <details key="documentation" value="The query parents() gives all of the immediate ancestors of a generalized Classifier.&#xA;result = generalization.general&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="feature" ordered="false"
         upperBound="-1" eType="#//Feature" changeable="false" volatile="true" transient="true"
         derived="true" eOpposite="#//Feature/featuringClassifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies each feature defined in the classifier.&#xA;Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features."/>
+        <details key="documentation" value="Specifies each feature defined in the classifier.&#xA;Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Namespace/member"/>
@@ -1137,7 +1137,7 @@
         upperBound="-1" eType="#//Property" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier."/>
+        <details key="documentation" value="Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Classifier/feature"/>
@@ -1145,34 +1145,34 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="collaborationUse" ordered="false"
         upperBound="-1" eType="#//CollaborationUse" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the collaboration uses owned by the classifier."/>
+        <details key="documentation" value="References the collaboration uses owned by the classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
         upperBound="-1" eType="#//Classifier" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the general Classifiers for this Classifier.&#xA;References the general classifier in the Generalization relationship."/>
+        <details key="documentation" value="Specifies the general Classifiers for this Classifier.&#xA;References the general classifier in the Generalization relationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
         upperBound="-1" eType="#//Generalization" containment="true" eOpposite="#//Generalization/specific">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy."/>
+        <details key="documentation" value="Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="powertypeExtent" ordered="false"
         upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/powertype">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the GeneralizationSet of which the associated Classifier is a power type."/>
+        <details key="documentation" value="Designates the GeneralizationSet of which the associated Classifier is a power type.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inheritedMember" ordered="false"
         upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies all elements inherited by this classifier from the general classifiers."/>
+        <details key="documentation" value="Specifies all elements inherited by this classifier from the general classifiers.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/member"/>
     </eStructuralFeatures>
@@ -1180,54 +1180,54 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships."/>
+        <details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinalSpecialization"
         ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false."/>
+        <details key="documentation" value="If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedUseCase" ordered="false"
         upperBound="-1" eType="#//UseCase" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the use cases owned by this classifier."/>
+        <details key="documentation" value="References the use cases owned by this classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="useCase" ordered="false"
         upperBound="-1" eType="#//UseCase" eOpposite="#//UseCase/subject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of use cases for which this Classifier is the subject."/>
+        <details key="documentation" value="The set of use cases for which this Classifier is the subject.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedClassifier" ordered="false"
         upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Classifiers that are redefined by this Classifier."/>
+        <details key="documentation" value="References the Classifiers that are redefined by this Classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="representation" ordered="false"
         eType="#//CollaborationUse">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a collaboration use which indicates the collaboration that represents this classifier."/>
+        <details key="documentation" value="References a collaboration use which indicates the collaboration that represents this classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/collaborationUse"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="substitution" ordered="false"
         upperBound="-1" eType="#//Substitution" containment="true" eOpposite="#//Substitution/substitutingClassifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the substitutions that are owned by this Classifier."/>
+        <details key="documentation" value="References the substitutions that are owned by this Classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Namespace" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A namespace is an element in a model that contains a set of named elements that can be identified by name."/>
+      <details key="documentation" value="A namespace is an element in a model that contains a set of named elements that can be identified by name.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="members_distinguishable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -1290,57 +1290,57 @@
     </eOperations>
     <eOperations name="excludeCollisions" ordered="false" upperBound="-1" eType="#//PackageableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.&#xA;result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))"/>
+        <details key="documentation" value="The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.&#xA;result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
     </eOperations>
     <eOperations name="getNamesOfMember" ordered="false" upperBound="-1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA;  if elementImports->notEmpty()&#xA;  then elementImports->collect(el | el.getName())&#xA;  else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA;  endif&#xA;endif"/>
+        <details key="documentation" value="The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xA;result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA;  if elementImports->notEmpty()&#xA;  then elementImports->collect(el | el.getName())&#xA;  else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA;  endif&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="element" ordered="false" lowerBound="1" eType="#//NamedElement"/>
     </eOperations>
     <eOperations name="importMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported.&#xA;result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem |&#xA;mem.imp.isDistinguishableFrom(mem, self)))"/>
+        <details key="documentation" value="The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported.&#xA;result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem |&#xA;mem.imp.isDistinguishableFrom(mem, self)))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
     </eOperations>
     <eOperations name="getImportedMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.&#xA;result = self.importMembers(self.elementImport.importedElement.asSet()-&#xA;>union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))"/>
+        <details key="documentation" value="The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.&#xA;result = self.importMembers(self.elementImport.importedElement.asSet()-&#xA;>union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="membersAreDistinguishable" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.&#xA;result = self.member->forAll( memb |&#xA;self.member->excluding(memb)->forAll(other |&#xA;memb.isDistinguishableFrom(other, self)))"/>
+        <details key="documentation" value="The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.&#xA;result = self.member->forAll( memb |&#xA;self.member->excluding(memb)->forAll(other |&#xA;memb.isDistinguishableFrom(other, self)))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getOwnedMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Namespace::/ownedMember : NamedElement&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Namespace::/ownedMember : NamedElement&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="elementImport" ordered="false"
         upperBound="-1" eType="#//ElementImport" containment="true" eOpposite="#//ElementImport/importingNamespace">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the ElementImports owned by the Namespace."/>
+        <details key="documentation" value="References the ElementImports owned by the Namespace.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="packageImport" ordered="false"
         upperBound="-1" eType="#//PackageImport" containment="true" eOpposite="#//PackageImport/importingNamespace">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the PackageImports owned by the Namespace."/>
+        <details key="documentation" value="References the PackageImports owned by the Namespace.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRule" ordered="false"
         upperBound="-1" eType="#//Constraint" containment="true" eOpposite="#//Constraint/context">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies a set of Constraints owned by this Namespace."/>
+        <details key="documentation" value="Specifies a set of Constraints owned by this Namespace.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
@@ -1348,7 +1348,7 @@
         upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
         transient="true" derived="true" eOpposite="#//NamedElement/namespace">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A collection of NamedElements owned by the Namespace."/>
+        <details key="documentation" value="A collection of NamedElements owned by the Namespace.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Namespace/member #//Element/ownedElement"/>
@@ -1357,7 +1357,7 @@
         upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports."/>
+        <details key="documentation" value="References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/member"/>
     </eStructuralFeatures>
@@ -1365,14 +1365,14 @@
         upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance."/>
+        <details key="documentation" value="A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A named element supports using a string expression to specify its name. This allows names of model elements to involve template parameters. The actual name is evaluated from the string expression only when it is sensible to do so (e.g., when a template is bound).&#xA;A named element is an element in a model that may have a name."/>
+      <details key="documentation" value="A named element supports using a string expression to specify its name. This allows names of model elements to involve template parameters. The actual name is evaluated from the string expression only when it is sensible to do so (e.g., when a template is bound).&#xA;A named element is an element in a model that may have a name.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="has_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -1468,54 +1468,54 @@
     </eOperations>
     <eOperations name="allNamespaces" upperBound="-1" eType="#//Namespace">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.&#xA;result = if self.namespace->isEmpty()&#xA;then Sequence{}&#xA;else self.namespace.allNamespaces()->prepend(self.namespace)&#xA;endif"/>
+        <details key="documentation" value="The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.&#xA;result = if self.namespace->isEmpty()&#xA;then Sequence{}&#xA;else self.namespace.allNamespaces()->prepend(self.namespace)&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="allOwningPackages" ordered="false" upperBound="-1" eType="#//Package">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query allOwningPackages() returns all the directly or indirectly owning packages.&#xA;result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages())"/>
+        <details key="documentation" value="The query allOwningPackages() returns all the directly or indirectly owning packages.&#xA;result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages())&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isDistinguishableFrom" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names.&#xA;result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType)&#xA;then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()&#xA;else true&#xA;endif"/>
+        <details key="documentation" value="The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names.&#xA;result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType)&#xA;then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()&#xA;else true&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
       <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
     </eOperations>
     <eOperations name="getNamespace" ordered="false" eType="#//Namespace">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for NamedElement::/namespace : Namespace&#xA;true"/>
+        <details key="documentation" value="Missing derivation for NamedElement::/namespace : Namespace&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getQualifiedName" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xA;result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()&#xA;then &#xA;    self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))&#xA;else&#xA;    Set{}&#xA;endif"/>
+        <details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xA;result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()&#xA;then &#xA;    self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))&#xA;else&#xA;    Set{}&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="separator" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query separator() gives the string that is used to separate names when constructing a qualified name.&#xA;result = '::'"/>
+        <details key="documentation" value="The query separator() gives the string that is used to separate names when constructing a qualified name.&#xA;result = '::'&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="clientDependency" ordered="false"
         upperBound="-1" eType="#//Dependency" eOpposite="#//Dependency/client">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates the dependencies that reference the client."/>
+        <details key="documentation" value="Indicates the dependencies that reference the client.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The name of the NamedElement."/>
+        <details key="documentation" value="The name of the NamedElement.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="nameExpression" ordered="false"
         eType="#//StringExpression" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The string expression used to define the name of this named element."/>
+        <details key="documentation" value="The string expression used to define the name of this named element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -1523,7 +1523,7 @@
         eType="#//Namespace" changeable="false" volatile="true" transient="true" derived="true"
         eOpposite="#//Namespace/ownedMember">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
+        <details key="documentation" value="Specifies the namespace that owns the NamedElement.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Element/owner"/>
@@ -1532,24 +1532,24 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself."/>
+        <details key="documentation" value="A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
         eType="#//VisibilityKind" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility."/>
+        <details key="documentation" value="Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StringExpression" eSuperTypes="#//Expression #//TemplateableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An expression that specifies a string value that is derived by concatenating a set of sub string expressions, some of which might be template parameters."/>
+      <details key="documentation" value="An expression that specifies a string value that is derived by concatenating a set of sub string expressions, some of which might be template parameters.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query stringValue() returns the string that concatenates, in order, all the component string literals of all the subexpressions that are part of the StringExpression.&#xA;result = if subExpression->notEmpty()&#xA;then subExpression->iterate(se; stringValue = ‘| stringValue.concat(se.stringValue()))&#xA;else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value))"/>
+          <details key="documentation" value="The query stringValue() returns the string that concatenates, in order, all the component string literals of all the subexpressions that are part of the StringExpression.&#xA;result = if subExpression->notEmpty()&#xA;then subExpression->iterate(se; stringValue = ‘| stringValue.concat(se.stringValue()))&#xA;else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
       </contents>
@@ -1595,26 +1595,26 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="owningExpression" ordered="false"
         eType="#//StringExpression" eOpposite="#//StringExpression/subExpression">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The string expression of which this expression is a substring."/>
+        <details key="documentation" value="The string expression of which this expression is a substring.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="subExpression" ordered="false"
         upperBound="-1" eType="#//StringExpression" containment="true" eOpposite="#//StringExpression/owningExpression">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The StringExpressions that constitute this StringExpression."/>
+        <details key="documentation" value="The StringExpressions that constitute this StringExpression.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//ValueSpecification">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.&#xA;An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications."/>
+      <details key="documentation" value="An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.&#xA;An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="operand" upperBound="-1"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies a sequence of operands."/>
+        <details key="documentation" value="Specifies a sequence of operands.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -1622,20 +1622,20 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The symbol associated with the node in the expression tree."/>
+        <details key="documentation" value="The symbol associated with the node in the expression tree.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ValueSpecification" abstract="true"
       eSuperTypes="#//PackageableElement #//TypedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;A value specification is the specification of a (possibly empty) set of instances, including both objects and data values."/>
+      <details key="documentation" value="ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;A value specification is the specification of a (possibly empty) set of instances, including both objects and data values.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="isCompatibleWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element.&#xA;result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)"/>
+          <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element.&#xA;result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//ParameterableElement/isCompatibleWith"/>
         <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
@@ -1643,53 +1643,53 @@
     </eAnnotations>
     <eOperations name="booleanValue" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query booleanValue() gives a single Boolean value when one can be computed.&#xA;result = Set{}"/>
+        <details key="documentation" value="The query booleanValue() gives a single Boolean value when one can be computed.&#xA;result = Set{}&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="integerValue" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query integerValue() gives a single Integer value when one can be computed.&#xA;result = Set{}"/>
+        <details key="documentation" value="The query integerValue() gives a single Integer value when one can be computed.&#xA;result = Set{}&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isComputable" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.&#xA;result = false"/>
+        <details key="documentation" value="The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.&#xA;result = false&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isNull" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isNull() returns true when it can be computed that the value is null.&#xA;result = false"/>
+        <details key="documentation" value="The query isNull() returns true when it can be computed that the value is null.&#xA;result = false&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="realValue" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Real">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query realValue() gives a single Real value when one can be computed.&#xA;result = Set{}"/>
+        <details key="documentation" value="The query realValue() gives a single Real value when one can be computed.&#xA;result = Set{}&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="stringValue" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query stringValue() gives a single String value when one can be computed.&#xA;result = Set{}"/>
+        <details key="documentation" value="The query stringValue() gives a single String value when one can be computed.&#xA;result = Set{}&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="unlimitedValue" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//UnlimitedNatural">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.&#xA;result = Set{}"/>
+        <details key="documentation" value="The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.&#xA;result = Set{}&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A typed element is a kind of named element that represents an element with a type.&#xA;A typed element has a type."/>
+      <details key="documentation" value="A typed element is a kind of named element that represents an element with a type.&#xA;A typed element has a type.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;The type of the TypedElement."/>
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;The type of the TypedElement.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//PackageableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A type is a named element that is used as the type for a typed element. A type can be contained in a package.&#xA;A type constrains the values represented by a typed element."/>
+      <details key="documentation" value="A type is a named element that is used as the type for a typed element. A type can be contained in a package.&#xA;A type constrains the values represented by a typed element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="createAssociation" ordered="false" lowerBound="1" eType="#//Association">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -1758,27 +1758,27 @@
     </eOperations>
     <eOperations name="conformsTo" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations.&#xA;result = false"/>
+        <details key="documentation" value="The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations.&#xA;result = false&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="other" ordered="false" lowerBound="1" eType="#//Type"/>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
         eType="#//Package" volatile="true" transient="true" derived="true" eOpposite="#//Package/ownedType">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the owning package of this classifier, if any."/>
+        <details key="documentation" value="Specifies the owning package of this classifier, if any.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace #//PackageableElement #//TemplateableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A package can have one or more profile applications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles.&#xA;Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.&#xA;A package is used to group elements, and provides a namespace for the grouped elements."/>
+      <details key="documentation" value="A package can have one or more profile applications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles.&#xA;Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.&#xA;A package is used to group elements, and provides a namespace for the grouped elements.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="mustBeOwned" ordered="false" lowerBound="1"
           eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner.&#xA;result = false"/>
+          <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner.&#xA;result = false&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//Element/mustBeOwned"/>
       </contents>
@@ -1965,60 +1965,60 @@
     </eOperations>
     <eOperations name="allApplicableStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query allApplicableStereotypes() returns all the directly or indirectly owned stereotypes, including stereotypes contained in sub-profiles.&#xA;result = &#xA;self.ownedStereotype->union(self.ownedMember->&#xA;&#x9;select(oclIsKindOf(Package)).oclAsType(Package).allApplicableStereotypes()->flatten())->asSet()"/>
+        <details key="documentation" value="The query allApplicableStereotypes() returns all the directly or indirectly owned stereotypes, including stereotypes contained in sub-profiles.&#xA;result = &#xA;self.ownedStereotype->union(self.ownedMember->&#xA;&#x9;select(oclIsKindOf(Package)).oclAsType(Package).allApplicableStereotypes()->flatten())->asSet()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="containingProfile" ordered="false" eType="#//Profile">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query containingProfile() returns the closest profile directly or indirectly containing this package (or this package itself, if it is a profile).&#xA;result =&#xA;if self.oclIsKindOf(Profile) then &#xA;&#x9;self.oclAsType(Profile)&#xA;else&#xA;&#x9;self.namespace.oclAsType(Package).containingProfile()&#xA;endif"/>
+        <details key="documentation" value="The query containingProfile() returns the closest profile directly or indirectly containing this package (or this package itself, if it is a profile).&#xA;result =&#xA;if self.oclIsKindOf(Profile) then &#xA;&#x9;self.oclAsType(Profile)&#xA;else&#xA;&#x9;self.namespace.oclAsType(Package).containingProfile()&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="makesVisible" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.&#xA;result = (ownedMember->includes(el)) or&#xA;(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or&#xA;(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())&#xA;self.member->includes(el)"/>
+        <details key="documentation" value="The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.&#xA;result = (ownedMember->includes(el)) or&#xA;(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or&#xA;(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())&#xA;self.member->includes(el)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="el" ordered="false" lowerBound="1" eType="#//NamedElement"/>
     </eOperations>
     <eOperations name="getNestedPackages" ordered="false" upperBound="-1" eType="#//Package">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Package::/nestedPackage : Package&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Package::/nestedPackage : Package&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getOwnedStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Package::/ownedStereotype : Stereotype&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Package::/ownedStereotype : Stereotype&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getOwnedTypes" ordered="false" upperBound="-1" eType="#//Type">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Package::/ownedType : Type&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Package::/ownedType : Type&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="visibleMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query visibleMembers() defines which members of a Package can be accessed outside it.&#xA;result = member->select( m | self.makesVisible(m))"/>
+        <details key="documentation" value="The query visibleMembers() defines which members of a Package can be accessed outside it.&#xA;result = member->select( m | self.makesVisible(m))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="URI" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules."/>
+        <details key="documentation" value="Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="nestedPackage" ordered="false"
         upperBound="-1" eType="#//Package" volatile="true" transient="true" derived="true"
         eOpposite="#//Package/nestingPackage">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the packaged elements that are Packages."/>
+        <details key="documentation" value="References the packaged elements that are Packages.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Package/packagedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="nestingPackage" ordered="false"
         eType="#//Package" volatile="true" transient="true" derived="true" eOpposite="#//Package/nestedPackage">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Package that owns this Package."/>
+        <details key="documentation" value="References the Package that owns this Package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
@@ -2026,28 +2026,28 @@
         upperBound="-1" eType="#//Stereotype" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Stereotypes that are owned by the Package"/>
+        <details key="documentation" value="References the Stereotypes that are owned by the Package&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Package/packagedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="packageMerge" ordered="false"
         upperBound="-1" eType="#//PackageMerge" containment="true" eOpposite="#//PackageMerge/receivingPackage">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the PackageMerges that are owned by this Package."/>
+        <details key="documentation" value="References the PackageMerges that are owned by this Package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="packagedElement" ordered="false"
         upperBound="-1" eType="#//PackageableElement" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the packageable elements that are owned by this Package."/>
+        <details key="documentation" value="Specifies the packageable elements that are owned by this Package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="profileApplication" ordered="false"
         upperBound="-1" eType="#//ProfileApplication" containment="true" eOpposite="#//ProfileApplication/applyingPackage">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the ProfileApplications that indicate which profiles have been applied to the Package."/>
+        <details key="documentation" value="References the ProfileApplications that indicate which profiles have been applied to the Package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -2055,7 +2055,7 @@
         upperBound="-1" eType="#//Type" volatile="true" transient="true" derived="true"
         eOpposite="#//Type/package">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the packaged elements that are Types."/>
+        <details key="documentation" value="References the packaged elements that are Types.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Package/packagedElement"/>
     </eStructuralFeatures>
@@ -2063,36 +2063,36 @@
   <eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
       eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A templateable element is an element that can optionally be defined as a template and bound to other templates."/>
+      <details key="documentation" value="A templateable element is an element that can optionally be defined as a template and bound to other templates.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="isTemplate" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xA;result = ownedTemplateSignature->notEmpty()"/>
+        <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xA;result = ownedTemplateSignature->notEmpty()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="parameterableElements" ordered="false" upperBound="-1" eType="#//ParameterableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.&#xA;result = allOwnedElements->select(oclIsKindOf(ParameterableElement))"/>
+        <details key="documentation" value="The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.&#xA;result = allOwnedElements->select(oclIsKindOf(ParameterableElement))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
         ordered="false" eType="#//TemplateSignature" containment="true" eOpposite="#//TemplateSignature/template">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
+        <details key="documentation" value="The optional template signature specifying the formal template parameters.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
         upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/boundElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional bindings from this element to templates."/>
+        <details key="documentation" value="The optional bindings from this element to templates.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template signature bundles the set of formal template parameters for a templated element."/>
+      <details key="documentation" value="A template signature bundles the set of formal template parameters for a templated element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="own_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2116,27 +2116,27 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
         eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/signature">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameters that are owned by this template signature."/>
+        <details key="documentation" value="The formal template parameters that are owned by this template signature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//TemplateSignature/parameter #//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
         upperBound="-1" eType="#//TemplateParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of all formal template parameters for this template signature."/>
+        <details key="documentation" value="The ordered set of all formal template parameters for this template signature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="template" ordered="false"
         lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedTemplateSignature">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that owns this template signature."/>
+        <details key="documentation" value="The element that owns this template signature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template parameter exposes a parameterable element as a formal template parameter of a template."/>
+      <details key="documentation" value="A template parameter exposes a parameterable element as a formal template parameter of a template.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2160,40 +2160,40 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="default" ordered="false"
         eType="#//ParameterableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the default for this formal template parameter."/>
+        <details key="documentation" value="The element that is the default for this formal template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" ordered="false"
         eType="#//ParameterableElement" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is owned by this template parameter for the purpose of providing a default."/>
+        <details key="documentation" value="The element that is owned by this template parameter for the purpose of providing a default.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/default"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
         ordered="false" eType="#//ParameterableElement" containment="true" eOpposite="#//ParameterableElement/owningTemplateParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is owned by this template parameter."/>
+        <details key="documentation" value="The element that is owned by this template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//TemplateParameter/parameteredElement #//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
         lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element exposed by this template parameter."/>
+        <details key="documentation" value="The element exposed by this template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
         lowerBound="1" eType="#//TemplateSignature" eOpposite="#//TemplateSignature/ownedParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template signature that owns this template parameter."/>
+        <details key="documentation" value="The template signature that owns this template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template."/>
+      <details key="documentation" value="A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="parameter_substitution_formal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2237,21 +2237,21 @@
         ordered="false" upperBound="-1" eType="#//TemplateParameterSubstitution" containment="true"
         eOpposite="#//TemplateParameterSubstitution/templateBinding">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The parameter substitutions owned by this template binding."/>
+        <details key="documentation" value="The parameter substitutions owned by this template binding.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
         lowerBound="1" eType="#//TemplateSignature">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template signature for the template that is the target of the binding."/>
+        <details key="documentation" value="The template signature for the template that is the target of the binding.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="boundElement" ordered="false"
         lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/templateBinding">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is bound by this binding."/>
+        <details key="documentation" value="The element that is bound by this binding.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
@@ -2259,13 +2259,13 @@
   <eClassifiers xsi:type="ecore:EClass" name="DirectedRelationship" abstract="true"
       eSuperTypes="#//Relationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements."/>
+      <details key="documentation" value="A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the sources of the DirectedRelationship."/>
+        <details key="documentation" value="Specifies the sources of the DirectedRelationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
@@ -2274,7 +2274,7 @@
         lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the targets of the DirectedRelationship."/>
+        <details key="documentation" value="Specifies the targets of the DirectedRelationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
@@ -2282,20 +2282,20 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Relationship is an abstract concept that specifies some kind of relationship between elements."/>
+      <details key="documentation" value="Relationship is an abstract concept that specifies some kind of relationship between elements.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="relatedElement" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the elements related by the Relationship."/>
+        <details key="documentation" value="Specifies the elements related by the Relationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding."/>
+      <details key="documentation" value="A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2319,52 +2319,52 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
         lowerBound="1" eType="#//ParameterableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the actual parameter for this substitution."/>
+        <details key="documentation" value="The element that is the actual parameter for this substitution.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="formal" ordered="false"
         lowerBound="1" eType="#//TemplateParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameter that is associated with this substitution."/>
+        <details key="documentation" value="The formal template parameter that is associated with this substitution.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedActual" ordered="false"
         eType="#//ParameterableElement" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The actual parameter that is owned by this substitution."/>
+        <details key="documentation" value="The actual parameter that is owned by this substitution.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameterSubstitution/actual"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
         lowerBound="1" eType="#//TemplateBinding" eOpposite="#//TemplateBinding/parameterSubstitution">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional bindings from this element to templates."/>
+        <details key="documentation" value="The optional bindings from this element to templates.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PackageMerge" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A package merge defines how the contents of one package are extended by the contents of another package."/>
+      <details key="documentation" value="A package merge defines how the contents of one package are extended by the contents of another package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="mergedPackage" ordered="false"
         lowerBound="1" eType="#//Package">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Package that is to be merged with the receiving package of the PackageMerge."/>
+        <details key="documentation" value="References the Package that is to be merged with the receiving package of the PackageMerge.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="receivingPackage" ordered="false"
         lowerBound="1" eType="#//Package" eOpposite="#//Package/packageMerge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Package that is being extended with the contents of the merged package of the PackageMerge."/>
+        <details key="documentation" value="References the Package that is being extended with the contents of the merged package of the PackageMerge.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProfileApplication" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A profile application is used to show which profiles have been applied to a package."/>
+      <details key="documentation" value="A profile application is used to show which profiles have been applied to a package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="getAppliedDefinition" ordered="false" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2384,7 +2384,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="appliedProfile" ordered="false"
         lowerBound="1" eType="#//Profile">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Profiles that are applied to a Package through this ProfileApplication."/>
+        <details key="documentation" value="References the Profiles that are applied to a Package through this ProfileApplication.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
@@ -2392,20 +2392,20 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied."/>
+        <details key="documentation" value="Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="applyingPackage" ordered="false"
         lowerBound="1" eType="#//Package" eOpposite="#//Package/profileApplication">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The package that owns the profile application."/>
+        <details key="documentation" value="The package that owns the profile application.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Profile" eSuperTypes="#//Package">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A profile defines limited extensions to a reference metamodel with the purpose of adapting the metamodel to a specific platform or domain."/>
+      <details key="documentation" value="A profile defines limited extensions to a reference metamodel with the purpose of adapting the metamodel to a specific platform or domain.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="metaclass_reference_not_specialized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2531,21 +2531,21 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="metaclassReference" ordered="false"
         upperBound="-1" eType="#//ElementImport">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a metaclass that may be extended."/>
+        <details key="documentation" value="References a metaclass that may be extended.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/elementImport"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelReference" ordered="false"
         upperBound="-1" eType="#//PackageImport">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a package containing (directly or indirectly) metaclasses that may be extended."/>
+        <details key="documentation" value="References a package containing (directly or indirectly) metaclasses that may be extended.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/packageImport"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ElementImport" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An element import identifies an element in another package, and allows the element to be referenced using its name without a qualifier."/>
+      <details key="documentation" value="An element import identifies an element in another package, and allows the element to be referenced using its name without a qualifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="visibility_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2587,40 +2587,40 @@
     </eOperations>
     <eOperations name="getName" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.&#xA;result = if self.alias->notEmpty() then&#xA;  self.alias&#xA;else&#xA;  self.importedElement.name&#xA;endif"/>
+        <details key="documentation" value="The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.&#xA;result = if self.alias->notEmpty() then&#xA;  self.alias&#xA;else&#xA;  self.importedElement.name&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" ordered="false"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the name that should be added to the namespace of the importing package in lieu of the name of the imported packagable element. The aliased name must not clash with any other member name in the importing package. By default, no alias is used."/>
+        <details key="documentation" value="Specifies the name that should be added to the namespace of the importing package in lieu of the name of the imported packagable element. The aliased name must not clash with any other member name in the importing package. By default, no alias is used.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="importedElement" ordered="false"
         lowerBound="1" eType="#//PackageableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the PackageableElement whose name is to be added to a Namespace."/>
+        <details key="documentation" value="Specifies the PackageableElement whose name is to be added to a Namespace.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
         lowerBound="1" eType="#//Namespace" eOpposite="#//Namespace/elementImport">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the Namespace that imports a PackageableElement from another Package."/>
+        <details key="documentation" value="Specifies the Namespace that imports a PackageableElement from another Package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
         lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import."/>
+        <details key="documentation" value="Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="VisibilityKind is an enumeration type that defines literals to determine the visibility of elements in a model."/>
+      <details key="documentation" value="VisibilityKind is an enumeration type that defines literals to determine the visibility of elements in a model.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="public">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2645,7 +2645,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PackageImport" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A package import is a relationship that allows the use of unqualified names to refer to package members from other namespaces."/>
+      <details key="documentation" value="A package import is a relationship that allows the use of unqualified names to refer to package members from other namespaces.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2669,27 +2669,27 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="importedPackage" ordered="false"
         lowerBound="1" eType="#//Package">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the Package whose members are imported into a Namespace."/>
+        <details key="documentation" value="Specifies the Package whose members are imported into a Namespace.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
         lowerBound="1" eType="#//Namespace" eOpposite="#//Namespace/packageImport">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the Namespace that imports the members from a Package."/>
+        <details key="documentation" value="Specifies the Namespace that imports the members from a Package.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
         lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not."/>
+        <details key="documentation" value="Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Extension" eSuperTypes="#//Association">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An extension is used to indicate that the properties of a metaclass are extended through a stereotype, and gives the ability to flexibly add (and later remove) stereotypes to classes."/>
+      <details key="documentation" value="An extension is used to indicate that the properties of a metaclass are extended through a stereotype, and gives the ability to flexibly add (and later remove) stereotypes to classes.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="ownedEnd">
@@ -2699,7 +2699,7 @@
       <contents xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1" eType="#//ExtensionEnd"
           containment="true">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the end of the extension that is typed by a Stereotype."/>
+          <details key="documentation" value="References the end of the extension that is typed by a Stereotype.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//Association/ownedEnd"/>
       </contents>
@@ -2754,18 +2754,18 @@
     </eOperations>
     <eOperations name="isRequired" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isRequired() is true if the owned end has a multiplicity with the lower bound of 1.&#xA;result = (ownedEnd->lowerBound() = 1)"/>
+        <details key="documentation" value="The query isRequired() is true if the owned end has a multiplicity with the lower bound of 1.&#xA;result = (ownedEnd->lowerBound() = 1)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getMetaclass" ordered="false" lowerBound="1" eType="#//Class">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype).&#xA;result = metaclassEnd().type"/>
+        <details key="documentation" value="The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype).&#xA;result = metaclassEnd().type&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="metaclassEnd" ordered="false" lowerBound="1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype).&#xA;result = memberEnd->reject(ownedEnd)"/>
+        <details key="documentation" value="The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype).&#xA;result = memberEnd->reject(ownedEnd)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRequired" ordered="false"
@@ -2773,20 +2773,20 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates whether an instance of the extending stereotype must be created when an instance of the extended class is created. The attribute value is derived from the value of the lower property of the ExtensionEnd referenced by Extension::ownedEnd; a lower value of 1 means that isRequired is true, but otherwise it is false. Since the default value of ExtensionEnd::lower is 0, the default value of isRequired is false."/>
+        <details key="documentation" value="Indicates whether an instance of the extending stereotype must be created when an instance of the extended class is created. The attribute value is derived from the value of the lower property of the ExtensionEnd referenced by Extension::ownedEnd; a lower value of 1 means that isRequired is true, but otherwise it is false. Since the default value of ExtensionEnd::lower is 0, the default value of isRequired is false.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="metaclass" ordered="false"
         lowerBound="1" eType="#//Class" changeable="false" volatile="true" transient="true"
         derived="true" eOpposite="#//Class/extension">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd."/>
+        <details key="documentation" value="References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//Classifier #//Relationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link.A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.&#xA;An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link. A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end."/>
+      <details key="documentation" value="An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link.A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.&#xA;An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link. A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="specialized_end_number" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -2871,7 +2871,7 @@
     </eOperations>
     <eOperations name="getEndTypes" upperBound="-1" eType="#//Type">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="endType is derived from the types of the member ends.&#xA;result = self.memberEnd->collect(e | e.type)"/>
+        <details key="documentation" value="endType is derived from the types of the member ends.&#xA;result = self.memberEnd->collect(e | e.type)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
@@ -2879,7 +2879,7 @@
         upperBound="-1" eType="#//Type" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the classifiers that are used as types of the ends of the association."/>
+        <details key="documentation" value="References the classifiers that are used as types of the ends of the association.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
     </eStructuralFeatures>
@@ -2887,40 +2887,40 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether the association is derived from other model elements such as other associations or constraints."/>
+        <details key="documentation" value="Specifies whether the association is derived from other model elements such as other associations or constraints.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memberEnd" lowerBound="2"
         upperBound="-1" eType="#//Property" eOpposite="#//Property/association">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Each end represents participation of instances of the classifier connected to the end in links of the association."/>
+        <details key="documentation" value="Each end represents participation of instances of the classifier connected to the end in links of the association.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/member"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1"
         eType="#//Property" containment="true" eOpposite="#//Property/owningAssociation">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ends that are owned by the association itself."/>
+        <details key="documentation" value="The ends that are owned by the association itself.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Association/memberEnd #//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="navigableOwnedEnd" ordered="false"
         upperBound="-1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The navigable ends that are owned by the association itself."/>
+        <details key="documentation" value="The navigable ends that are owned by the association itself.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Association/ownedEnd"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="#//StructuralFeature #//ConnectableElement #//DeploymentTarget">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. The range of valid values represented by the property can be controlled by setting the property's type.&#xA;A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.&#xA;A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.&#xA;Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;A property represents a set of instances that are owned by a containing classifier instance."/>
+      <details key="documentation" value="Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. The range of valid values represented by the property can be controlled by setting the property's type.&#xA;A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.&#xA;A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.&#xA;Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;A property represents a set of instances that are owned by a containing classifier instance.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="isCompatibleWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for properties, the type must be conformant with the type of the specified parameterable element.&#xA;result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)"/>
+          <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for properties, the type must be conformant with the type of the specified parameterable element.&#xA;result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//ParameterableElement/isCompatibleWith"/>
         <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
@@ -2928,7 +2928,7 @@
       <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = redefinee.oclIsKindOf(Property) and &#xA;  let prop : Property = redefinee.oclAsType(Property) in &#xA;  (prop.type.conformsTo(self.type) and &#xA;  ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and &#xA;  ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() &lt;= self.lowerBound()) and &#xA;  (self.isComposite implies prop.isComposite))"/>
+          <details key="documentation" value="The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = redefinee.oclIsKindOf(Property) and &#xA;  let prop : Property = redefinee.oclAsType(Property) in &#xA;  (prop.type.conformsTo(self.type) and &#xA;  ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and &#xA;  ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() &lt;= self.lowerBound()) and &#xA;  (self.isComposite implies prop.isComposite))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
         <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
@@ -2937,7 +2937,7 @@
           eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
           defaultValueLiteral="false">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="If true, the attribute may only be read, and not written.&#xA;If isReadOnly is true, the attribute may not be written to after initialization."/>
+          <details key="documentation" value="If true, the attribute may only be read, and not written.&#xA;If isReadOnly is true, the attribute may not be written to after initialization.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//StructuralFeature/isReadOnly"/>
       </contents>
@@ -3213,75 +3213,75 @@
     </eOperations>
     <eOperations name="getDefault" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Property::/default : String&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Property::/default : String&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isAttribute" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isAttribute() is true if the Property is defined as an attribute of some classifier.&#xA;result = Classifier.allInstances->exists(c | c.attribute->includes(p))"/>
+        <details key="documentation" value="The query isAttribute() is true if the Property is defined as an attribute of some classifier.&#xA;result = Classifier.allInstances->exists(c | c.attribute->includes(p))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="p" ordered="false" lowerBound="1" eType="#//Property"/>
     </eOperations>
     <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The value of isComposite is true only if aggregation is composite.&#xA;result = (self.aggregation = #composite)"/>
+        <details key="documentation" value="The value of isComposite is true only if aggregation is composite.&#xA;result = (self.aggregation = #composite)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isNavigable" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isNavigable() indicates whether it is possible to navigate across the property.&#xA;result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self)"/>
+        <details key="documentation" value="The query isNavigable() indicates whether it is possible to navigate across the property.&#xA;result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getOpposite" ordered="false" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end.&#xA;result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2&#xA;  then&#xA;    let otherEnd = (association.memberEnd - self)->any() in&#xA;      if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif&#xA;    else Set {}&#xA;    endif"/>
+        <details key="documentation" value="If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end.&#xA;result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2&#xA;  then&#xA;    let otherEnd = (association.memberEnd - self)->any() in&#xA;      if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif&#xA;    else Set {}&#xA;    endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="subsettingContext" ordered="false" upperBound="-1" eType="#//Type">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends.&#xA;result = if association->notEmpty()&#xA;then association.endType-type&#xA;else if classifier->notEmpty() then Set{classifier} else Set{} endif&#xA;endif"/>
+        <details key="documentation" value="The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends.&#xA;result = if association->notEmpty()&#xA;then association.endType-type&#xA;else if classifier->notEmpty() then Set{classifier} else Set{} endif&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
         eType="#//Interface" eOpposite="#//Interface/ownedAttribute">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Interface that owns the Property"/>
+        <details key="documentation" value="References the Interface that owns the Property&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
         eType="#//DataType" eOpposite="#//DataType/ownedAttribute">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The DataType that owns this Property."/>
+        <details key="documentation" value="The DataType that owns this Property.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="aggregation" ordered="false"
         lowerBound="1" eType="#//AggregationKind" defaultValueLiteral="none">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the kind of aggregation that applies to the Property."/>
+        <details key="documentation" value="Specifies the kind of aggregation that applies to the Property.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="associationEnd" ordered="false"
         eType="#//Property" eOpposite="#//Property/qualifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the optional association end that owns a qualifier attribute."/>
+        <details key="documentation" value="Designates the optional association end that owns a qualifier attribute.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" upperBound="-1"
         eType="#//Property" containment="true" eOpposite="#//Property/associationEnd">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified."/>
+        <details key="documentation" value="An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
         eType="#//Class" changeable="false" volatile="true" transient="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Class that owns the Property.&#xA;References the Class that owns the Property."/>
+        <details key="documentation" value="References the Class that owns the Property.&#xA;References the Class that owns the Property.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier #//RedefinableElement/redefinitionContext"/>
     </eStructuralFeatures>
@@ -3289,13 +3289,13 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         volatile="true" transient="true" unsettable="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Property.&#xA;A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
+        <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Property.&#xA;A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
+        <details key="documentation" value="A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -3303,79 +3303,79 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         volatile="true" transient="true" defaultValueLiteral="false" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.&#xA;This is a derived value, indicating whether the aggregation of the Property is composite or not."/>
+        <details key="documentation" value="If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.&#xA;This is a derived value, indicating whether the aggregation of the Property is composite or not.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If isDerived is true, the value of the attribute is derived from information elsewhere.&#xA;Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information."/>
+        <details key="documentation" value="If isDerived is true, the value of the attribute is derived from information elsewhere.&#xA;Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerivedUnion" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether the property is derived as the union of all of the properties that are constrained to subset it."/>
+        <details key="documentation" value="Specifies whether the property is derived as the union of all of the properties that are constrained to subset it.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isID" ordered="false" lowerBound="1"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="True indicates this property can be used to uniquely identify an instance of the containing Class."/>
+        <details key="documentation" value="True indicates this property can be used to uniquely identify an instance of the containing Class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" ordered="false"
         eType="#//Property" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end."/>
+        <details key="documentation" value="In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="owningAssociation" ordered="false"
         eType="#//Association" eOpposite="#//Association/ownedEnd">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the owning association of this property, if any."/>
+        <details key="documentation" value="References the owning association of this property, if any.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace #//Property/association"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedProperty" ordered="false"
         upperBound="-1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the properties that are redefined by this property."/>
+        <details key="documentation" value="References the properties that are redefined by this property.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="subsettedProperty" ordered="false"
         upperBound="-1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the properties of which this property is constrained to be a subset."/>
+        <details key="documentation" value="References the properties of which this property is constrained to be a subset.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="association" ordered="false"
         eType="#//Association" eOpposite="#//Association/memberEnd">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the association of which this property is a member, if any."/>
+        <details key="documentation" value="References the association of which this property is a member, if any.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" abstract="true" eSuperTypes="#//Feature #//TypedElement #//MultiplicityElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.&#xA;By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature."/>
+      <details key="documentation" value="A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.&#xA;By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="States whether the feature's value may be modified by a client."/>
+        <details key="documentation" value="States whether the feature's value may be modified by a client.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="MultiplicityElement" abstract="true"
       eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element."/>
+      <details key="documentation" value="A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="lower_ge_0" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3467,81 +3467,81 @@
     </eOperations>
     <eOperations name="compatibleWith" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.&#xA;result = Integer.allInstances()->forAll(i : Integer | self.includesCardinality(i) implies other.includesCardinality(i))"/>
+        <details key="documentation" value="The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.&#xA;result = Integer.allInstances()->forAll(i : Integer | self.includesCardinality(i) implies other.includesCardinality(i))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="other" ordered="false" lowerBound="1" eType="#//MultiplicityElement"/>
     </eOperations>
     <eOperations name="includesCardinality" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.&#xA;upperBound()->notEmpty() and lowerBound()->notEmpty()&#xA;result = (lowerBound() &lt;= C) and (upperBound() >= C)"/>
+        <details key="documentation" value="The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.&#xA;upperBound()->notEmpty() and lowerBound()->notEmpty()&#xA;result = (lowerBound() &lt;= C) and (upperBound() >= C)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="C" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
     </eOperations>
     <eOperations name="includesMultiplicity" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.&#xA;result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())&#xA;self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()"/>
+        <details key="documentation" value="The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.&#xA;result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())&#xA;self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="M" ordered="false" lowerBound="1" eType="#//MultiplicityElement"/>
     </eOperations>
     <eOperations name="is" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation is determines if the upper and lower bound of the ranges are the ones given.&#xA;result = (lowerbound = self.lowerbound and upperbound = self.upperbound)"/>
+        <details key="documentation" value="The operation is determines if the upper and lower bound of the ranges are the ones given.&#xA;result = (lowerbound = self.lowerbound and upperbound = self.upperbound)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="lowerbound" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
       <eParameters name="upperbound" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
     </eOperations>
     <eOperations name="isMultivalued" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.&#xA;result = upperBound() > 1&#xA;upperBound()->notEmpty()"/>
+        <details key="documentation" value="The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.&#xA;result = upperBound() > 1&#xA;upperBound()->notEmpty()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getLower" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The derived lower attribute must equal the lowerBound.&#xA;result = lowerBound()"/>
+        <details key="documentation" value="The derived lower attribute must equal the lowerBound.&#xA;result = lowerBound()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="lowerBound" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an integer.&#xA;result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif"/>
+        <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an integer.&#xA;result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getUpper" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//UnlimitedNatural">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The derived upper attribute must equal the upperBound.&#xA;result = upperBound()"/>
+        <details key="documentation" value="The derived upper attribute must equal the upperBound.&#xA;result = upperBound()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="upperBound" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//UnlimitedNatural">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.&#xA;result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif"/>
+        <details key="documentation" value="The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.&#xA;result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered."/>
+        <details key="documentation" value="For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique."/>
+        <details key="documentation" value="For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"
         volatile="true" transient="true" defaultValueLiteral="1" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the lower bound of the multiplicity interval."/>
+        <details key="documentation" value="Specifies the lower bound of the multiplicity interval.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lowerValue" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The specification of the lower bound for this multiplicity."/>
+        <details key="documentation" value="The specification of the lower bound for this multiplicity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -3549,26 +3549,26 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//UnlimitedNatural"
         volatile="true" transient="true" defaultValueLiteral="1" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the upper bound of the multiplicity interval."/>
+        <details key="documentation" value="Specifies the upper bound of the multiplicity interval.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="upperValue" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The specification of the upper bound for this multiplicity."/>
+        <details key="documentation" value="The specification of the upper bound for this multiplicity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//RedefinableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A feature declares a behavioral or structural characteristic of instances of classifiers."/>
+      <details key="documentation" value="A feature declares a behavioral or structural characteristic of instances of classifiers.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="featuringClassifier" ordered="false"
         upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
         derived="true" eOpposite="#//Classifier/feature">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Classifiers that have this Feature as a feature."/>
+        <details key="documentation" value="The Classifiers that have this Feature as a feature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
@@ -3576,14 +3576,14 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true)."/>
+        <details key="documentation" value="Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="RedefinableElement" abstract="true"
       eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier."/>
+      <details key="documentation" value="A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="redefinition_consistent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3644,14 +3644,14 @@
     </eOperations>
     <eOperations name="isConsistentWith" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions.&#xA;result = false&#xA;redefinee.isRedefinitionContextValid(self)"/>
+        <details key="documentation" value="The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions.&#xA;result = false&#xA;redefinee.isRedefinitionContextValid(self)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
     </eOperations>
     <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.&#xA;result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)))"/>
+        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.&#xA;result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
     </eOperations>
@@ -3659,14 +3659,14 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false."/>
+        <details key="documentation" value="Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
         upperBound="-1" eType="#//RedefinableElement" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The redefinable element that is being redefined by this element."/>
+        <details key="documentation" value="The redefinable element that is being redefined by this element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
@@ -3674,7 +3674,7 @@
         upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the contexts that this element may be redefined from."/>
+        <details key="documentation" value="References the contexts that this element may be redefined from.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
@@ -3682,7 +3682,7 @@
   <eClassifiers xsi:type="ecore:EClass" name="ConnectableElement" abstract="true"
       eSuperTypes="#//TypedElement #//ParameterableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier.&#xA;A connectable element may be exposed as a connectable element template parameter."/>
+      <details key="documentation" value="ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier.&#xA;A connectable element may be exposed as a connectable element template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="templateParameter">
@@ -3691,27 +3691,27 @@
       <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
           eType="#//TemplateParameter" eOpposite="#//ConnectableElementTemplateParameter/%duplicates%/parameteredElement">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The ConnectableElementTemplateParameter for this ConnectableElement parameter."/>
+          <details key="documentation" value="The ConnectableElementTemplateParameter for this ConnectableElement parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
       </contents>
     </eAnnotations>
     <eOperations name="getEnds" ordered="false" upperBound="-1" eType="#//ConnectorEnd">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for ConnectableElement::/end : ConnectorEnd&#xA;true"/>
+        <details key="documentation" value="Missing derivation for ConnectableElement::/end : ConnectorEnd&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="end" upperBound="-1" eType="#//ConnectorEnd"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Denotes a set of connector ends that attaches to this connectable element."/>
+        <details key="documentation" value="Denotes a set of connector ends that attaches to this connectable element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ConnectorEnd" eSuperTypes="#//MultiplicityElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector."/>
+      <details key="documentation" value="A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="role_and_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3791,33 +3791,33 @@
     </eOperations>
     <eOperations name="getDefiningEnd" ordered="false" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for ConnectorEnd::/definingEnd : Property&#xA;true"/>
+        <details key="documentation" value="Missing derivation for ConnectorEnd::/definingEnd : Property&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="definingEnd" ordered="false"
         eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end."/>
+        <details key="documentation" value="A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" ordered="false"
         eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates the role of the internal structure of a classifier with the port to which the connector end is attached."/>
+        <details key="documentation" value="Indicates the role of the internal structure of a classifier with the port to which the connector end is attached.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" lowerBound="1"
         eType="#//ConnectableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element."/>
+        <details key="documentation" value="The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ConnectableElementTemplateParameter"
       eSuperTypes="#//TemplateParameter">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A connectable element template parameter exposes a connectable element as a formal parameter for a template."/>
+      <details key="documentation" value="A connectable element template parameter exposes a connectable element as a formal parameter for a template.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="parameteredElement">
@@ -3826,7 +3826,7 @@
       <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
           lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ConnectableElement/%duplicates%/templateParameter">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The ConnectableElement for this template parameter."/>
+          <details key="documentation" value="The ConnectableElement for this template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
       </contents>
@@ -3834,11 +3834,11 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DeploymentTarget" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A deployment target is the location for a deployed artifact."/>
+      <details key="documentation" value="A deployment target is the location for a deployed artifact.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="getDeployedElements" ordered="false" upperBound="-1" eType="#//PackageableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for DeploymentTarget::/deployedElement : PackageableElement&#xA;result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement)"/>
+        <details key="documentation" value="Missing derivation for DeploymentTarget::/deployedElement : PackageableElement&#xA;result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
@@ -3846,46 +3846,46 @@
         upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget."/>
+        <details key="documentation" value="The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
         upperBound="-1" eType="#//Deployment" containment="true" eOpposite="#//Deployment/location">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of Deployments for a DeploymentTarget."/>
+        <details key="documentation" value="The set of Deployments for a DeploymentTarget.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Deployment" eSuperTypes="#//Dependency">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A deployment is the allocation of an artifact or artifact instance to a deployment target.&#xA;A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files."/>
+      <details key="documentation" value="A deployment is the allocation of an artifact or artifact instance to a deployment target.&#xA;A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" ordered="false"
         upperBound="-1" eType="#//DeploymentSpecification" containment="true" eOpposite="#//DeploymentSpecification/deployment">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The specification of properties that parameterize the deployment and execution of one or more Artifacts."/>
+        <details key="documentation" value="The specification of properties that parameterize the deployment and execution of one or more Artifacts.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="deployedArtifact" ordered="false"
         upperBound="-1" eType="#//DeployedArtifact">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Artifacts that are deployed onto a Node. This association specializes the supplier association."/>
+        <details key="documentation" value="The Artifacts that are deployed onto a Node. This association specializes the supplier association.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Dependency/supplier"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="location" ordered="false"
         lowerBound="1" eType="#//DeploymentTarget" eOpposite="#//DeploymentTarget/deployment">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The DeployedTarget which is the target of a Deployment."/>
+        <details key="documentation" value="The DeployedTarget which is the target of a Deployment.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DeploymentSpecification" eSuperTypes="#//Artifact">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A deployment specification specifies a set of properties that determine execution parameters of a component artifact that is deployed on a node. A deployment specification can be aimed at a specific type of container. An artifact that reifies or implements deployment specification properties is a deployment descriptor."/>
+      <details key="documentation" value="A deployment specification specifies a set of properties that determine execution parameters of a component artifact that is deployed on a node. A deployment specification can be aimed at a specific type of container. An artifact that reifies or implements deployment specification properties is a deployment descriptor.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="deployed_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3929,27 +3929,27 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'."/>
+        <details key="documentation" value="The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="executionLocation" ordered="false"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The location where a component Artifact executes. This may be a local or remote location."/>
+        <details key="documentation" value="The location where a component Artifact executes. This may be a local or remote location.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
         eType="#//Deployment" eOpposite="#//Deployment/configuration">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The deployment with which the DeploymentSpecification is associated."/>
+        <details key="documentation" value="The deployment with which the DeploymentSpecification is associated.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Artifact" eSuperTypes="#//Classifier #//DeployedArtifact">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An artifact is the source of a deployment to a node.&#xA;An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message."/>
+      <details key="documentation" value="An artifact is the source of a deployment to a node.&#xA;An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4005,58 +4005,58 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator."/>
+        <details key="documentation" value="A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="manifestation" ordered="false"
         upperBound="-1" eType="#//Manifestation" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact."/>
+        <details key="documentation" value="The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="nestedArtifact" ordered="false"
         upperBound="-1" eType="#//Artifact" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Artifacts that are defined (nested) within the Artifact. The association is a specialization of the ownedMember association from Namespace to NamedElement."/>
+        <details key="documentation" value="The Artifacts that are defined (nested) within the Artifact. The association is a specialization of the ownedMember association from Namespace to NamedElement.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
         eType="#//Property" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association."/>
+        <details key="documentation" value="The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
         eType="#//Operation" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Operations defined for the Artifact. The association is a specialization of the ownedMember association."/>
+        <details key="documentation" value="The Operations defined for the Artifact. The association is a specialization of the ownedMember association.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DeployedArtifact" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A deployed artifact is an artifact or artifact instance that has been deployed to a deployment target."/>
+      <details key="documentation" value="A deployed artifact is an artifact or artifact instance that has been deployed to a deployment target.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Manifestation" eSuperTypes="#//Abstraction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A manifestation is the concrete physical rendering of one or more model elements by an artifact."/>
+      <details key="documentation" value="A manifestation is the concrete physical rendering of one or more model elements by an artifact.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="utilizedElement" ordered="false"
         lowerBound="1" eType="#//PackageableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The model element that is utilized in the manifestation in an Artifact."/>
+        <details key="documentation" value="The model element that is utilized in the manifestation in an Artifact.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Dependency/supplier"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//BehavioralFeature #//ParameterableElement #//TemplateableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.&#xA;An operation may invoke both the execution of method behaviors as well as other behavioral responses.&#xA;Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template."/>
+      <details key="documentation" value="An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.&#xA;An operation may invoke both the execution of method behaviors as well as other behavioral responses.&#xA;Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="templateParameter">
@@ -4065,7 +4065,7 @@
       <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter.&#xA;The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = redefinee.oclIsKindOf(Operation) and&#xA;let op : Operation = redefinee.oclAsType(Operation) in&#xA;&#x9;self.ownedParameter->size() = op.ownedParameter->size() and&#xA;&#x9;Sequence{1..self.ownedParameter->size()}->&#xA;&#x9;&#x9;forAll(i |op.ownedParameter->at(1).type.conformsTo(self.ownedParameter->at(i).type))"/>
+          <details key="documentation" value="A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter.&#xA;The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = redefinee.oclIsKindOf(Operation) and&#xA;let op : Operation = redefinee.oclAsType(Operation) in&#xA;&#x9;self.ownedParameter->size() = op.ownedParameter->size() and&#xA;&#x9;Sequence{1..self.ownedParameter->size()}->&#xA;&#x9;&#x9;forAll(i |op.ownedParameter->at(1).type.conformsTo(self.ownedParameter->at(i).type))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
         <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
@@ -4073,21 +4073,21 @@
       <contents xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
           eType="#//Parameter" containment="true" eOpposite="#//Parameter/operation">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xA;Specifies the parameters owned by this Operation."/>
+          <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xA;Specifies the parameters owned by this Operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//BehavioralFeature/ownedParameter"/>
       </contents>
       <contents xsi:type="ecore:EReference" name="raisedException" ordered="false"
           upperBound="-1" eType="#//Type">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this operation."/>
+          <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//BehavioralFeature/raisedException"/>
       </contents>
       <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
           eType="#//TemplateParameter" eOpposite="#//OperationTemplateParameter/%duplicates%/parameteredElement">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
+          <details key="documentation" value="The template parameter that exposes this element as a formal parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
       </contents>
@@ -4152,62 +4152,62 @@
     </eOperations>
     <eOperations name="isOrdered" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif"/>
+        <details key="documentation" value="If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isUnique" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif"/>
+        <details key="documentation" value="If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getLower" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif"/>
+        <details key="documentation" value="If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="returnResult" ordered="false" upperBound="-1" eType="#//Parameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set&#xA;result = ownedParameter->select (par | par.direction = #return)"/>
+        <details key="documentation" value="The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set&#xA;result = ownedParameter->select (par | par.direction = #return)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getType" ordered="false" lowerBound="1" eType="#//Type">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif"/>
+        <details key="documentation" value="If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getUpper" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//UnlimitedNatural">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif"/>
+        <details key="documentation" value="If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xA;result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
         eType="#//Interface" eOpposite="#//Interface/ownedOperation">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Interface that owns this Operation."/>
+        <details key="documentation" value="The Interface that owns this Operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="bodyCondition" ordered="false"
         eType="#//Constraint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional Constraint on the result values of an invocation of this Operation."/>
+        <details key="documentation" value="An optional Constraint on the result values of an invocation of this Operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
         eType="#//Class" eOpposite="#//Class/ownedOperation">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The class that owns the operation."/>
+        <details key="documentation" value="The class that owns the operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
         eType="#//DataType" eOpposite="#//DataType/ownedOperation">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The DataType that owns this Operation."/>
+        <details key="documentation" value="The DataType that owns this Operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Feature/featuringClassifier #//RedefinableElement/redefinitionContext #//NamedElement/namespace"/>
     </eStructuralFeatures>
@@ -4216,14 +4216,14 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies whether the return parameter is ordered or not, if present."/>
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies whether the return parameter is ordered or not, if present.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isQuery" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false)."/>
+        <details key="documentation" value="Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
@@ -4231,7 +4231,7 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether the return parameter is unique or not, if present.&#xA;This information is derived from the return result for this Operation."/>
+        <details key="documentation" value="Specifies whether the return parameter is unique or not, if present.&#xA;This information is derived from the return result for this Operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
@@ -4239,34 +4239,34 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the lower multiplicity of the return parameter, if present."/>
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the lower multiplicity of the return parameter, if present.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
         upperBound="-1" eType="#//Constraint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional set of Constraints specifying the state of the system when the Operation is completed."/>
+        <details key="documentation" value="An optional set of Constraints specifying the state of the system when the Operation is completed.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
         upperBound="-1" eType="#//Constraint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional set of Constraints on the state of the system when the Operation is invoked."/>
+        <details key="documentation" value="An optional set of Constraints on the state of the system when the Operation is invoked.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedOperation" ordered="false"
         upperBound="-1" eType="#//Operation">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Operations that are redefined by this Operation."/>
+        <details key="documentation" value="References the Operations that are redefined by this Operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the return result of the operation, if present."/>
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the return result of the operation, if present.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
@@ -4274,19 +4274,19 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the upper multiplicity of the return parameter, if present."/>
+        <details key="documentation" value="This information is derived from the return result for this Operation.&#xA;Specifies the upper multiplicity of the return parameter, if present.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BehavioralFeature" abstract="true" eSuperTypes="#//Namespace #//Feature">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.&#xA;A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method.&#xA;A behavioral feature owns zero or more parameter sets."/>
+      <details key="documentation" value="A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.&#xA;A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method.&#xA;A behavioral feature owns zero or more parameter sets.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="isDistinguishableFrom" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.&#xA;result = if n.oclIsKindOf(BehavioralFeature)&#xA;then&#xA;  if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()&#xA;  then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type))&#xA;  else true&#xA;  endif&#xA;else true&#xA;endif"/>
+          <details key="documentation" value="The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.&#xA;result = if n.oclIsKindOf(BehavioralFeature)&#xA;then&#xA;  if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()&#xA;  then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type))&#xA;  else true&#xA;  endif&#xA;else true&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//NamedElement/isDistinguishableFrom"/>
         <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
@@ -4311,46 +4311,46 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="concurrency" ordered="false"
         lowerBound="1" eType="#//CallConcurrencyKind" defaultValueLiteral="sequential">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features."/>
+        <details key="documentation" value="Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element."/>
+        <details key="documentation" value="If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="method" ordered="false"
         upperBound="-1" eType="#//Behavior" eOpposite="#//Behavior/specification">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior)."/>
+        <details key="documentation" value="A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
         eType="#//Parameter" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature."/>
+        <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
         upperBound="-1" eType="#//ParameterSet" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ParameterSets owned by this BehavioralFeature."/>
+        <details key="documentation" value="The ParameterSets owned by this BehavioralFeature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="raisedException" ordered="false"
         upperBound="-1" eType="#//Type">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this feature."/>
+        <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this feature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="CallConcurrencyKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="CallConcurrencyKind is an enumeration type."/>
+      <details key="documentation" value="CallConcurrencyKind is an enumeration type.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="sequential">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4370,7 +4370,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Behavior" abstract="true" eSuperTypes="#//Class">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution.&#xA;A behavior owns zero or more parameter sets."/>
+      <details key="documentation" value="Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution.&#xA;A behavior owns zero or more parameter sets.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="parameters_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4450,7 +4450,7 @@
     </eOperations>
     <eOperations name="getContext" ordered="false" eType="#//BehavioredClassifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Behavior::/context : BehavioredClassifier&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Behavior::/context : BehavioredClassifier&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
@@ -4458,7 +4458,7 @@
         eType="#//BehavioredClassifier" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifier that is the context for the execution of the behavior. A Behavior that is directly owned as a nestedClassifier does not have a context. Otherwise, to determine the context of a Behavior, find the first BehavioredClassifier reached by following the chain of owner relationships from the Behavior, if any. If there is such a BehavioredClassifier, then it is the context, unless it is itself a Behavior with a non-empty context, in which case that is also the context for the original Behavior. For example, following this algorithm, the context of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior."/>
+        <details key="documentation" value="The classifier that is the context for the execution of the behavior. A Behavior that is directly owned as a nestedClassifier does not have a context. Otherwise, to determine the context of a Behavior, find the first BehavioredClassifier reached by following the chain of owner relationships from the Behavior, if any. If there is such a BehavioredClassifier, then it is the context, unless it is itself a Behavior with a non-empty context, in which case that is also the context for the original Behavior. For example, following this algorithm, the context of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
     </eStructuralFeatures>
@@ -4466,55 +4466,55 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="true" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Tells whether the behavior can be invoked while it is still executing from a previous invocation."/>
+        <details key="documentation" value="Tells whether the behavior can be invoked while it is still executing from a previous invocation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
         eType="#//Parameter" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution."/>
+        <details key="documentation" value="References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
         upperBound="-1" eType="#//ParameterSet" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ParameterSets owned by this Behavior."/>
+        <details key="documentation" value="The ParameterSets owned by this Behavior.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
         upperBound="-1" eType="#//Constraint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation."/>
+        <details key="documentation" value="An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
         upperBound="-1" eType="#//Constraint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional set of Constraints specifying what must be fulfilled when the behavior is invoked."/>
+        <details key="documentation" value="An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedBehavior" ordered="false"
         upperBound="-1" eType="#//Behavior">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior."/>
+        <details key="documentation" value="References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/redefinedClassifier"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
         eType="#//BehavioralFeature" eOpposite="#//BehavioralFeature/method">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier."/>
+        <details key="documentation" value="Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BehavioredClassifier" abstract="true"
       eSuperTypes="#//Classifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A behaviored classifier may have an interface realization.&#xA;A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself."/>
+      <details key="documentation" value="A behaviored classifier may have an interface realization.&#xA;A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="class_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4549,52 +4549,52 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="classifierBehavior" ordered="false"
         eType="#//Behavior">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A behavior specification that specifies the behavior of the classifier itself."/>
+        <details key="documentation" value="A behavior specification that specifies the behavior of the classifier itself.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//BehavioredClassifier/ownedBehavior"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interfaceRealization" ordered="false"
         upperBound="-1" eType="#//InterfaceRealization" containment="true" eOpposite="#//InterfaceRealization/implementingClassifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation."/>
+        <details key="documentation" value="The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehavior" ordered="false"
         upperBound="-1" eType="#//Behavior" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References behavior specifications owned by a classifier."/>
+        <details key="documentation" value="References behavior specifications owned by a classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InterfaceRealization" eSuperTypes="#//Realization">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An interface realization is a specialized realization relationship between a classifier and an interface. This relationship signifies that the realizing classifier conforms to the contract specified by the interface."/>
+      <details key="documentation" value="An interface realization is a specialized realization relationship between a classifier and an interface. This relationship signifies that the realizing classifier conforms to the contract specified by the interface.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
         lowerBound="1" eType="#//Interface">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Interface specifying the conformance contract."/>
+        <details key="documentation" value="References the Interface specifying the conformance contract.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Dependency/supplier"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="implementingClassifier"
         ordered="false" lowerBound="1" eType="#//BehavioredClassifier" eOpposite="#//BehavioredClassifier/interfaceRealization">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points)."/>
+        <details key="documentation" value="References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Realization" eSuperTypes="#//Abstraction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc."/>
+      <details key="documentation" value="Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Interface" eSuperTypes="#//Classifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.&#xA;Interfaces may include receptions (in addition to operations).&#xA;An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface."/>
+      <details key="documentation" value="Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.&#xA;Interfaces may include receptions (in addition to operations).&#xA;An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4668,49 +4668,49 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
         eType="#//Classifier" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
+        <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
         eType="#//Property" containment="true" eOpposite="#//Property/interface">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
+        <details key="documentation" value="The attributes (i.e. the properties) owned by the class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
         eType="#//Operation" containment="true" eOpposite="#//Operation/interface">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operations owned by the class."/>
+        <details key="documentation" value="The operations owned by the class.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
         upperBound="-1" eType="#//Reception" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Receptions that objects providing this interface are willing to accept."/>
+        <details key="documentation" value="Receptions that objects providing this interface are willing to accept.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
         eType="#//ProtocolStateMachine" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface."/>
+        <details key="documentation" value="References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedInterface" ordered="false"
         upperBound="-1" eType="#//Interface">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References all the Interfaces redefined by this Interface."/>
+        <details key="documentation" value="References all the Interfaces redefined by this Interface.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/redefinedClassifier"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Reception" eSuperTypes="#//BehavioralFeature">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself."/>
+      <details key="documentation" value="A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="not_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4734,13 +4734,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
         lowerBound="1" eType="#//Signal">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The signal that this reception handles."/>
+        <details key="documentation" value="The signal that this reception handles.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Classifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence."/>
+      <details key="documentation" value="A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4770,14 +4770,14 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
         eType="#//Property" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The attributes owned by the signal."/>
+        <details key="documentation" value="The attributes owned by the signal.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProtocolStateMachine" eSuperTypes="#//StateMachine">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence."/>
+      <details key="documentation" value="A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
@@ -4880,20 +4880,20 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="conformance" ordered="false"
         upperBound="-1" eType="#//ProtocolConformance" containment="true" eOpposite="#//ProtocolConformance/specificMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Conformance between protocol state machines."/>
+        <details key="documentation" value="Conformance between protocol state machines.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StateMachine" eSuperTypes="#//Behavior">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine."/>
+      <details key="documentation" value="State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines.&#xA;result = true"/>
+          <details key="documentation" value="The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines.&#xA;result = true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
         <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
@@ -4977,14 +4977,14 @@
     </eOperations>
     <eOperations name="LCA" ordered="false" lowerBound="1" eType="#//Namespace">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy.&#xA;true"/>
+        <details key="documentation" value="The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy.&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
       <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
     </eOperations>
     <eOperations name="ancestor" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query ancestor(s1, s2) checks whether s1 is an ancestor state of state s2.&#xA;result = &#xA;if (s2 = s1) then &#xA;&#x9;true &#xA;else &#xA;&#x9;if (s2.container->isEmpty() or not s2.container.owner.oclIsKindOf(State)) then &#xA;&#x9;&#x9;false &#xA;&#x9;else &#xA;&#x9;&#x9;ancestor(s1, s2.container.owner.oclAsType(State))&#xA;&#x9;endif&#xA;endif &#xA;"/>
+        <details key="documentation" value="The query ancestor(s1, s2) checks whether s1 is an ancestor state of state s2.&#xA;result = &#xA;if (s2 = s1) then &#xA;&#x9;true &#xA;else &#xA;&#x9;if (s2.container->isEmpty() or not s2.container.owner.oclIsKindOf(State)) then &#xA;&#x9;&#x9;false &#xA;&#x9;else &#xA;&#x9;&#x9;ancestor(s1, s2.container.owner.oclAsType(State))&#xA;&#x9;endif&#xA;endif &#xA;&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
       <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
@@ -4992,7 +4992,7 @@
     <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine.&#xA;result = true"/>
+        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine.&#xA;result = true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
       <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//StateMachine"/>
@@ -5000,34 +5000,34 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
         upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/stateMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state."/>
+        <details key="documentation" value="The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="submachineState" ordered="false"
         upperBound="-1" eType="#//State" eOpposite="#//State/submachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state."/>
+        <details key="documentation" value="References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/stateMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The regions owned directly by the state machine."/>
+        <details key="documentation" value="The regions owned directly by the state machine.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachine" ordered="false"
         upperBound="-1" eType="#//StateMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state machines of which this is an extension."/>
+        <details key="documentation" value="The state machines of which this is an extension.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="redefines" references="#//Behavior/redefinedBehavior"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph."/>
+      <details key="documentation" value="A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="junction_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -5203,49 +5203,49 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
         eType="#//State" eOpposite="#//State/connectionPoint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State that owns this pseudostate and in which it appears."/>
+        <details key="documentation" value="The State that owns this pseudostate and in which it appears.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
         eType="#//PseudostateKind" defaultValueLiteral="initial">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice."/>
+        <details key="documentation" value="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
         eType="#//StateMachine" eOpposite="#//StateMachine/connectionPoint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint."/>
+        <details key="documentation" value="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions."/>
+      <details key="documentation" value="A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation containingStateMachine() returns the state machine in which this Vertex is defined&#xA;result = if not container->isEmpty()&#xA;then&#xA;-- the container is a region&#xA;container.containingStateMachine()&#xA;else if (oclIsKindOf(Pseudostate)) then&#xA;-- entry or exit point?&#xA;if (kind = #entryPoint) or (kind = #exitPoint) then&#xA;stateMachine&#xA;else if (oclIsKindOf(ConnectionPointReference)) then&#xA;state.containingStateMachine() -- no other valid cases possible&#xA;endif&#xA;"/>
+        <details key="documentation" value="The operation containingStateMachine() returns the state machine in which this Vertex is defined&#xA;result = if not container->isEmpty()&#xA;then&#xA;-- the container is a region&#xA;container.containingStateMachine()&#xA;else if (oclIsKindOf(Pseudostate)) then&#xA;-- entry or exit point?&#xA;if (kind = #entryPoint) or (kind = #exitPoint) then&#xA;stateMachine&#xA;else if (oclIsKindOf(ConnectionPointReference)) then&#xA;state.containingStateMachine() -- no other valid cases possible&#xA;endif&#xA;&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getIncomings" ordered="false" upperBound="-1" eType="#//Transition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Vertex::/incoming : Transition&#xA;result = Transition.allInstances()->select(t | t.target=self)"/>
+        <details key="documentation" value="Missing derivation for Vertex::/incoming : Transition&#xA;result = Transition.allInstances()->select(t | t.target=self)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getOutgoings" ordered="false" upperBound="-1" eType="#//Transition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Vertex::/outgoing : Transition&#xA;result = Transition.allInstances()->select(t | t.source=self)"/>
+        <details key="documentation" value="Missing derivation for Vertex::/outgoing : Transition&#xA;result = Transition.allInstances()->select(t | t.source=self)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
         eType="#//Region" eOpposite="#//Region/subvertex">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The region that contains this vertex."/>
+        <details key="documentation" value="The region that contains this vertex.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
@@ -5253,20 +5253,20 @@
         upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the transitions entering this vertex."/>
+        <details key="documentation" value="Specifies the transitions entering this vertex.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
         upperBound="-1" eType="#//Transition" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the transitions departing from this vertex."/>
+        <details key="documentation" value="Specifies the transitions departing from this vertex.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace #//RedefinableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions."/>
+      <details key="documentation" value="A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="redefinitionContext">
@@ -5276,7 +5276,7 @@
       <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region.&#xA;result = true"/>
+          <details key="documentation" value="The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region.&#xA;result = true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
         <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
@@ -5285,7 +5285,7 @@
           upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
           transient="true" derived="true">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+          <details key="documentation" value="References the classifier in which context this element may be redefined.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
       </contents>
@@ -5368,66 +5368,66 @@
     </eOperations>
     <eOperations name="belongsToPSM" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation belongsToPSM () checks if the region belongs to a protocol state machine&#xA;result = if not stateMachine->isEmpty() then&#xA;oclIsTypeOf(ProtocolStateMachine)&#xA;else if not state->isEmpty() then&#xA;state.container.belongsToPSM ()&#xA;else false"/>
+        <details key="documentation" value="The operation belongsToPSM () checks if the region belongs to a protocol state machine&#xA;result = if not stateMachine->isEmpty() then&#xA;oclIsTypeOf(ProtocolStateMachine)&#xA;else if not state->isEmpty() then&#xA;state.container.belongsToPSM ()&#xA;else false&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation containingStateMachine() returns the sate machine in which this Region is defined&#xA;result = if stateMachine->isEmpty() &#xA;then&#xA;state.containingStateMachine()&#xA;else&#xA;stateMachine&#xA;endif"/>
+        <details key="documentation" value="The operation containingStateMachine() returns the sate machine in which this Region is defined&#xA;result = if stateMachine->isEmpty() &#xA;then&#xA;state.containingStateMachine()&#xA;else&#xA;stateMachine&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region.&#xA;result = true"/>
+        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region.&#xA;result = true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
       <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//Region"/>
     </eOperations>
     <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The redefinition context of a region is the nearest containing statemachine&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+        <details key="documentation" value="The redefinition context of a region is the nearest containing statemachine&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" ordered="false"
         eType="#//Region">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The region of which this region is an extension."/>
+        <details key="documentation" value="The region of which this region is an extension.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
         eType="#//State" eOpposite="#//State/region">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine."/>
+        <details key="documentation" value="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
         eType="#//StateMachine" eOpposite="#//StateMachine/region">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State."/>
+        <details key="documentation" value="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="transition" ordered="false"
         upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/container">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of transitions owned by the region."/>
+        <details key="documentation" value="The set of transitions owned by the region.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="subvertex" ordered="false"
         upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/container">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of vertices that are owned by this region."/>
+        <details key="documentation" value="The set of vertices that are owned by this region.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//RedefinableElement #//Vertex">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A state models a situation during which some (usually implicit) invariant condition holds.&#xA;The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration."/>
+      <details key="documentation" value="A state models a situation during which some (usually implicit) invariant condition holds.&#xA;The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="redefinitionContext">
@@ -5437,14 +5437,14 @@
       <contents xsi:type="ecore:EOperation" name="containingStateMachine" ordered="false"
           lowerBound="1" eType="#//StateMachine">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the state either directly or transitively.&#xA;result = container.containingStateMachine()"/>
+          <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the state either directly or transitively.&#xA;result = container.containingStateMachine()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//Vertex/containingStateMachine"/>
       </contents>
       <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions.&#xA;result = true"/>
+          <details key="documentation" value="The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions.&#xA;result = true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
         <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
@@ -5453,7 +5453,7 @@
           upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
           transient="true" derived="true">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+          <details key="documentation" value="References the classifier in which context this element may be redefined.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
       </contents>
@@ -5555,76 +5555,76 @@
     </eOperations>
     <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A composite state is a state with at least one region.&#xA;result = region.notEmpty()"/>
+        <details key="documentation" value="A composite state is a state with at least one region.&#xA;result = region.notEmpty()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isOrthogonal" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An orthogonal state is a composite state with at least 2 regions&#xA;result = (region->size () > 1)"/>
+        <details key="documentation" value="An orthogonal state is a composite state with at least 2 regions&#xA;result = (region->size () > 1)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state.&#xA;result = true"/>
+        <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state.&#xA;result = true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
       <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//State"/>
     </eOperations>
     <eOperations name="isSimple" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A simple state is a state without any regions.&#xA;result = region.isEmpty()"/>
+        <details key="documentation" value="A simple state is a state without any regions.&#xA;result = region.isEmpty()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isSubmachineState" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Only submachine states can have a reference statemachine.&#xA;result = submachine.notEmpty()"/>
+        <details key="documentation" value="Only submachine states can have a reference statemachine.&#xA;result = submachine.notEmpty()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The redefinition context of a state is the nearest containing statemachine.&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+        <details key="documentation" value="The redefinition context of a state is the nearest containing statemachine.&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
         upperBound="-1" eType="#//ConnectionPointReference" containment="true" eOpposite="#//ConnectionPointReference/state">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate."/>
+        <details key="documentation" value="The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
         upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/state">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states."/>
+        <details key="documentation" value="The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="deferrableTrigger" ordered="false"
         upperBound="-1" eType="#//Trigger" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred."/>
+        <details key="documentation" value="A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="doActivity" ordered="false"
         eType="#//Behavior" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first."/>
+        <details key="documentation" value="An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
         eType="#//Behavior" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state."/>
+        <details key="documentation" value="An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" eType="#//Behavior"
         containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution."/>
+        <details key="documentation" value="An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -5633,7 +5633,7 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region."/>
+        <details key="documentation" value="A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" ordered="false"
@@ -5641,7 +5641,7 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions."/>
+        <details key="documentation" value="A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" ordered="false"
@@ -5649,7 +5649,7 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine."/>
+        <details key="documentation" value="A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" ordered="false"
@@ -5657,40 +5657,40 @@
         changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine)."/>
+        <details key="documentation" value="A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" ordered="false"
         eType="#//State">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state of which this state is a redefinition."/>
+        <details key="documentation" value="The state of which this state is a redefinition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="stateInvariant" ordered="false"
         eType="#//Constraint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions."/>
+        <details key="documentation" value="Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="submachine" ordered="false"
         eType="#//StateMachine" eOpposite="#//StateMachine/submachineState">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state machine that is to be inserted in place of the (submachine) state."/>
+        <details key="documentation" value="The state machine that is to be inserted in place of the (submachine) state.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
         upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/state">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The regions owned directly by the state."/>
+        <details key="documentation" value="The regions owned directly by the state.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ConnectionPointReference" eSuperTypes="#//Vertex">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A connection point reference represents a usage (as part of a submachine state) of an entry/exit point defined in the statemachine reference by the submachine state."/>
+      <details key="documentation" value="A connection point reference represents a usage (as part of a submachine state) of an entry/exit point defined in the statemachine reference by the submachine state.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="entry_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -5733,48 +5733,48 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
         upperBound="-1" eType="#//Pseudostate">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entryPoint kind pseudo states corresponding to this connection point."/>
+        <details key="documentation" value="The entryPoint kind pseudo states corresponding to this connection point.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" upperBound="-1"
         eType="#//Pseudostate">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The exitPoints kind pseudo states corresponding to this connection point."/>
+        <details key="documentation" value="The exitPoints kind pseudo states corresponding to this connection point.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
         eType="#//State" eOpposite="#//State/connection">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State in which the connection point refreshens are defined."/>
+        <details key="documentation" value="The State in which the connection point refreshens are defined.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A trigger specification may be qualified by the port on which the event occurred.&#xA;A trigger relates an event to a behavior that may affect an instance of the classifier."/>
+      <details key="documentation" value="A trigger specification may be qualified by the port on which the event occurred.&#xA;A trigger relates an event to a behavior that may affect an instance of the classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
         lowerBound="1" eType="#//Event">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The event that causes the trigger."/>
+        <details key="documentation" value="The event that causes the trigger.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="port" ordered="false" upperBound="-1"
         eType="#//Port">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked."/>
+        <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//PackageableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An event is the specification of some occurrence that may potentially trigger effects by an object."/>
+      <details key="documentation" value="An event is the specification of some occurrence that may potentially trigger effects by an object.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//Property">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A port has an associated protocol state machine.&#xA;A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment."/>
+      <details key="documentation" value="A port has an associated protocol state machine.&#xA;A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="default_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -5835,13 +5835,13 @@
     </eOperations>
     <eOperations name="getProvideds" ordered="false" upperBound="-1" eType="#//Interface">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Port::/provided : Interface&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Port::/provided : Interface&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getRequireds" ordered="false" upperBound="-1" eType="#//Interface">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Port::/required : Interface&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Port::/required : Interface&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
@@ -5849,40 +5849,40 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain."/>
+        <details key="documentation" value="Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isConjugated" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the way that the provided and required interfaces are derived from the Port’s Type. The default value is false."/>
+        <details key="documentation" value="Specifies the way that the provided and required interfaces are derived from the Port’s Type. The default value is false.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isService" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation."/>
+        <details key="documentation" value="If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
         eType="#//ProtocolStateMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References an optional protocol state machine which describes valid interactions at this interaction point."/>
+        <details key="documentation" value="References an optional protocol state machine which describes valid interactions at this interaction point.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
         upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the interfaces specifying the set of operations and receptions that the classifier offers to its environment via this port, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived according to the value of isConjugated. If isConjugated is false, provided is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface. If isConjugated is true, it is derived as the union of the sets of interfaces used by the type of the port and its supertypes."/>
+        <details key="documentation" value="References the interfaces specifying the set of operations and receptions that the classifier offers to its environment via this port, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived according to the value of isConjugated. If isConjugated is false, provided is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface. If isConjugated is true, it is derived as the union of the sets of interfaces used by the type of the port and its supertypes.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedPort" ordered="false"
         upperBound="-1" eType="#//Port">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes."/>
+        <details key="documentation" value="A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Property/redefinedProperty"/>
     </eStructuralFeatures>
@@ -5890,13 +5890,13 @@
         upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the interfaces specifying the set of operations and receptions that the classifier expects its environment to handle via this port. This association is derived according to the value of isConjugated. If isConjugated is false, required is derived as the union of the sets of interfaces used by the type of the port and its supertypes. If isConjugated is true, it is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface."/>
+        <details key="documentation" value="References the interfaces specifying the set of operations and receptions that the classifier expects its environment to handle via this port. This association is derived according to the value of isConjugated. If isConjugated is false, required is derived as the union of the sets of interfaces used by the type of the port and its supertypes. If isConjugated is true, it is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//PackageableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element."/>
+      <details key="documentation" value="A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="not_apply_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -5977,27 +5977,27 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
         eType="#//Element">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of Elements referenced by this Constraint."/>
+        <details key="documentation" value="The ordered set of Elements referenced by this Constraint.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
         eType="#//Namespace" eOpposite="#//Namespace/ownedRule">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
+        <details key="documentation" value="Specifies the namespace that owns the NamedElement.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
         lowerBound="1" eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied."/>
+        <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//Namespace #//RedefinableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type."/>
+      <details key="documentation" value="A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="redefinitionContext">
@@ -6007,7 +6007,7 @@
       <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = (redefinee.oclIsKindOf(Transition) and&#xA;  let trans: Transition = redefinee.oclAsType(Transition) in&#xA;    (source() = trans.source() and trigger() = tran.trigger())"/>
+          <details key="documentation" value="The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger.&#xA;redefinee.isRedefinitionContextValid(self)&#xA;result = (redefinee.oclIsKindOf(Transition) and&#xA;  let trans: Transition = redefinee.oclAsType(Transition) in&#xA;    (source() = trans.source() and trigger() = tran.trigger())&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
         <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
@@ -6016,7 +6016,7 @@
           upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
           transient="true" derived="true">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+          <details key="documentation" value="References the classifier in which context this element may be redefined.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
       </contents>
@@ -6213,71 +6213,71 @@
     </eOperations>
     <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.&#xA;result = container.containingStateMachine()"/>
+        <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.&#xA;result = container.containingStateMachine()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The redefinition context of a transition is the nearest containing statemachine.&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+        <details key="documentation" value="The redefinition context of a transition is the nearest containing statemachine.&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="effect" ordered="false"
         eType="#//Behavior" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies an optional behavior to be performed when the transition fires."/>
+        <details key="documentation" value="Specifies an optional behavior to be performed when the transition fires.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
         eType="#//Constraint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed."/>
+        <details key="documentation" value="A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
         eType="#//TransitionKind" defaultValueLiteral="external">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates the precise type of the transition."/>
+        <details key="documentation" value="Indicates the precise type of the transition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedTransition" ordered="false"
         eType="#//Transition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The transition that is redefined by this transition."/>
+        <details key="documentation" value="The transition that is redefined by this transition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
         lowerBound="1" eType="#//Vertex">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the originating vertex (state or pseudostate) of the transition."/>
+        <details key="documentation" value="Designates the originating vertex (state or pseudostate) of the transition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
         lowerBound="1" eType="#//Vertex">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the target vertex that is reached when the transition is taken."/>
+        <details key="documentation" value="Designates the target vertex that is reached when the transition is taken.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
         upperBound="-1" eType="#//Trigger" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the triggers that may fire the transition."/>
+        <details key="documentation" value="Specifies the triggers that may fire the transition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
         lowerBound="1" eType="#//Region" eOpposite="#//Region/transition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the region that owns this transition."/>
+        <details key="documentation" value="Designates the region that owns this transition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="TransitionKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="TransitionKind is an enumeration type."/>
+      <details key="documentation" value="TransitionKind is an enumeration type.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="internal">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6297,7 +6297,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="PseudostateKind is an enumeration type."/>
+      <details key="documentation" value="PseudostateKind is an enumeration type.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="initial">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6352,26 +6352,26 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProtocolConformance" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine."/>
+      <details key="documentation" value="Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="generalMachine" ordered="false"
         lowerBound="1" eType="#//ProtocolStateMachine">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the protocol state machine to which the specific state machine conforms."/>
+        <details key="documentation" value="Specifies the protocol state machine to which the specific state machine conforms.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="specificMachine" ordered="false"
         lowerBound="1" eType="#//ProtocolStateMachine" eOpposite="#//ProtocolStateMachine/conformance">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the state machine which conforms to the general state machine."/>
+        <details key="documentation" value="Specifies the state machine which conforms to the general state machine.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Parameters are allowed to be treated as connectable elements.&#xA;A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.&#xA;Parameters have support for streaming, exceptions, and parameter sets."/>
+      <details key="documentation" value="Parameters are allowed to be treated as connectable elements.&#xA;A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.&#xA;Parameters have support for streaming, exceptions, and parameter sets.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="reentrant_behaviors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6541,7 +6541,7 @@
     </eOperations>
     <eOperations name="getDefault" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Parameter::/default : String&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Parameter::/default : String&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
@@ -6549,59 +6549,59 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         volatile="true" transient="true" unsettable="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Parameter."/>
+        <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter."/>
+        <details key="documentation" value="Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" ordered="false"
         lowerBound="1" eType="#//ParameterDirectionKind" defaultValueLiteral="in">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates whether a parameter is being sent into or out of a behavioral element."/>
+        <details key="documentation" value="Indicates whether a parameter is being sent into or out of a behavioral element.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="effect" ordered="false"
         eType="#//ParameterEffectKind" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the effect that the owner of the parameter has on values passed in or out of the parameter."/>
+        <details key="documentation" value="Specifies the effect that the owner of the parameter has on values passed in or out of the parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isException" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Tells whether an output parameter may emit a value to the exclusion of the other outputs."/>
+        <details key="documentation" value="Tells whether an output parameter may emit a value to the exclusion of the other outputs.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStream" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing."/>
+        <details key="documentation" value="Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
         eType="#//Operation" changeable="false" volatile="true" transient="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Operation owning this parameter."/>
+        <details key="documentation" value="References the Operation owning this parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSet" ordered="false"
         upperBound="-1" eType="#//ParameterSet" eOpposite="#//ParameterSet/parameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The parameter sets containing the parameter. See ParameterSet."/>
+        <details key="documentation" value="The parameter sets containing the parameter. See ParameterSet.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="ParameterDirectionKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Parameter direction kind is an enumeration type that defines literals used to specify direction of parameters."/>
+      <details key="documentation" value="Parameter direction kind is an enumeration type that defines literals used to specify direction of parameters.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="in">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6626,7 +6626,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="ParameterEffectKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="The datatype ParameterEffectKind is an enumeration that indicates the effect of a behavior on values passed in or out of its parameters."/>
+      <details key="documentation" value="The datatype ParameterEffectKind is an enumeration that indicates the effect of a behavior on values passed in or out of its parameters.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="create">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6651,7 +6651,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ParameterSet" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A parameter set is an element that provides alternative sets of inputs or outputs that a behavior may use."/>
+      <details key="documentation" value="A parameter set is an element that provides alternative sets of inputs or outputs that a behavior may use.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="two_parameter_sets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6713,26 +6713,26 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false"
         upperBound="-1" eType="#//Constraint" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Constraint that should be satisfied for the owner of the parameters in an input parameter set to start execution using the values provided for those parameters, or the owner of the parameters in an output parameter set to end execution providing the values for those parameters, if all preconditions and conditions on input parameter sets were satisfied."/>
+        <details key="documentation" value="Constraint that should be satisfied for the owner of the parameters in an input parameter set to start execution using the values provided for those parameters, or the owner of the parameters in an output parameter set to end execution providing the values for those parameters, if all preconditions and conditions on input parameter sets were satisfied.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//Parameter" eOpposite="#//Parameter/parameterSet">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Parameters in the parameter set."/>
+        <details key="documentation" value="Parameters in the parameter set.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Classifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A data type is a type whose instances are identified only by their value. A data type may contain attributes to support the modeling of structured data types."/>
+      <details key="documentation" value="A data type is a type whose instances are identified only by their value. A data type may contain attributes to support the modeling of structured data types.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
           eType="#//NamedElement">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
+          <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//Classifier/inherit"/>
         <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
@@ -6791,21 +6791,21 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
         eType="#//Property" containment="true" eOpposite="#//Property/datatype">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Attributes owned by the DataType."/>
+        <details key="documentation" value="The Attributes owned by the DataType.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/attribute"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
         eType="#//Operation" containment="true" eOpposite="#//Operation/datatype">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Operations owned by the DataType."/>
+        <details key="documentation" value="The Operations owned by the DataType.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="OperationTemplateParameter" eSuperTypes="#//TemplateParameter">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An operation template parameter exposes an operation as a formal parameter for a template."/>
+      <details key="documentation" value="An operation template parameter exposes an operation as a formal parameter for a template.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="parameteredElement">
@@ -6814,7 +6814,7 @@
       <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
           lowerBound="1" eType="#//ParameterableElement" eOpposite="#//Operation/%duplicates%/templateParameter">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The operation for this template parameter."/>
+          <details key="documentation" value="The operation for this template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
       </contents>
@@ -6822,7 +6822,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="AggregationKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="AggregationKind is an enumeration type that specifies the literals for defining the kind of aggregation of a property."/>
+      <details key="documentation" value="AggregationKind is an enumeration type that specifies the literals for defining the kind of aggregation of a property.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="none">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6842,7 +6842,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExtensionEnd" eSuperTypes="#//Property">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An extension end is used to tie an extension to a stereotype when extending a metaclass.&#xA;The default multiplicity of an extension end is 0..1."/>
+      <details key="documentation" value="An extension end is used to tie an extension to a stereotype when extending a metaclass.&#xA;The default multiplicity of an extension end is 0..1.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="type">
@@ -6861,20 +6861,20 @@
       </contents>
       <contents xsi:type="ecore:EOperation" name="lowerBound" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty.&#xA;result = lowerBound = if lowerValue->isEmpty() then 0 else lowerValue->IntegerValue() endif"/>
+          <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty.&#xA;result = lowerBound = if lowerValue->isEmpty() then 0 else lowerValue->IntegerValue() endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//MultiplicityElement/lowerBound"/>
       </contents>
       <contents xsi:type="ecore:EAttribute" name="lower" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"
           volatile="true" transient="true" defaultValueLiteral="0" derived="true">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="This redefinition changes the default multiplicity of association ends, since model elements are usually extended by 0 or 1 instance of the extension stereotype."/>
+          <details key="documentation" value="This redefinition changes the default multiplicity of association ends, since model elements are usually extended by 0 or 1 instance of the extension stereotype.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//MultiplicityElement/lower"/>
       </contents>
       <contents xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes."/>
+          <details key="documentation" value="References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//TypedElement/type"/>
       </contents>
@@ -6920,7 +6920,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Model" eSuperTypes="#//Package">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A model captures a view of a physical system. It is an abstraction of the physical system, with a certain purpose. This purpose determines what is to be included in the model and what is irrelevant. Thus the model completely describes those aspects of the physical system that are relevant to the purpose of the model, at the appropriate level of detail."/>
+      <details key="documentation" value="A model captures a view of a physical system. It is an abstraction of the physical system, with a certain purpose. This purpose determines what is to be included in the model and what is irrelevant. Thus the model completely describes those aspects of the physical system that are relevant to the purpose of the model, at the appropriate level of detail.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="isMetamodel" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -6931,25 +6931,25 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The name of the viewpoint that is expressed by a model (This name may refer to a profile definition)."/>
+        <details key="documentation" value="The name of the viewpoint that is expressed by a model (This name may refer to a profile definition).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//DataType">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An enumeration is a data type whose values are enumerated in the model as enumeration literals."/>
+      <details key="documentation" value="An enumeration is a data type whose values are enumerated in the model as enumeration literals.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ownedLiteral" upperBound="-1"
         eType="#//EnumerationLiteral" containment="true" eOpposite="#//EnumerationLiteral/enumeration">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of literals for this Enumeration."/>
+        <details key="documentation" value="The ordered set of literals for this Enumeration.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="EnumerationLiteral" eSuperTypes="#//InstanceSpecification">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An enumeration literal is a user-defined data value for an enumeration."/>
+      <details key="documentation" value="An enumeration literal is a user-defined data value for an enumeration.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="classifier">
@@ -6960,7 +6960,7 @@
           eType="#//Enumeration" changeable="false" volatile="true" transient="true"
           derived="true">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The classifier of this EnumerationLiteral derived to be equal to its enumeration."/>
+          <details key="documentation" value="The classifier of this EnumerationLiteral derived to be equal to its enumeration.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//InstanceSpecification/classifier"/>
       </contents>
@@ -6991,20 +6991,20 @@
     </eOperations>
     <eOperations name="getClassifier" ordered="false" lowerBound="1" eType="#//Enumeration">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for EnumerationLiteral::/classifier : Enumeration&#xA;true"/>
+        <details key="documentation" value="Missing derivation for EnumerationLiteral::/classifier : Enumeration&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="enumeration" ordered="false"
         eType="#//Enumeration" eOpposite="#//Enumeration/ownedLiteral">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Enumeration that this EnumerationLiteral is a member of."/>
+        <details key="documentation" value="The Enumeration that this EnumerationLiteral is a member of.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InstanceSpecification" eSuperTypes="#//DeploymentTarget #//PackageableElement #//DeployedArtifact">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact.&#xA;An instance specification is a model element that represents an instance in a modeled system."/>
+      <details key="documentation" value="An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact.&#xA;An instance specification is a model element that represents an instance in a modeled system.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7085,62 +7085,62 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
         upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them."/>
+        <details key="documentation" value="The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="slot" ordered="false" upperBound="-1"
         eType="#//Slot" containment="true" eOpposite="#//Slot/owningInstance">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description."/>
+        <details key="documentation" value="A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A specification of how to compute, derive, or construct the instance."/>
+        <details key="documentation" value="A specification of how to compute, derive, or construct the instance.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Slot" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A slot specifies that an entity modeled by an instance specification has a value or values for a specific structural feature."/>
+      <details key="documentation" value="A slot specifies that an entity modeled by an instance specification has a value or values for a specific structural feature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="definingFeature" ordered="false"
         lowerBound="1" eType="#//StructuralFeature">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The structural feature that specifies the values that may be held by the slot."/>
+        <details key="documentation" value="The structural feature that specifies the values that may be held by the slot.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" upperBound="-1"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The value or values corresponding to the defining feature for the owning instance specification."/>
+        <details key="documentation" value="The value or values corresponding to the defining feature for the owning instance specification.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="owningInstance" ordered="false"
         lowerBound="1" eType="#//InstanceSpecification" eOpposite="#//InstanceSpecification/slot">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The instance specification that owns this slot."/>
+        <details key="documentation" value="The instance specification that owns this slot.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A primitive type defines a predefined data type, without any relevant substructure (i.e., it has no parts in the context of UML). A primitive datatype may have an algebra and operations defined outside of UML, for example, mathematically."/>
+      <details key="documentation" value="A primitive type defines a predefined data type, without any relevant substructure (i.e., it has no parts in the context of UML). A primitive datatype may have an algebra and operations defined outside of UML, for example, mathematically.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Usage" eSuperTypes="#//Dependency">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. A usage is a dependency in which the client requires the presence of the supplier."/>
+      <details key="documentation" value="A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. A usage is a dependency in which the client requires the presence of the supplier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CollaborationUse" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration."/>
+      <details key="documentation" value="A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="connectors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7202,32 +7202,32 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="roleBinding" ordered="false"
         upperBound="-1" eType="#//Dependency" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A mapping between features of the collaboration type and features of the owning classifier. This mapping indicates which connectable element of the classifier plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles)."/>
+        <details key="documentation" value="A mapping between features of the collaboration type and features of the owning classifier. This mapping indicates which connectable element of the classifier plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
         eType="#//Collaboration">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use."/>
+        <details key="documentation" value="The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Collaboration" eSuperTypes="#//StructuredClassifier #//BehavioredClassifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A collaboration use represents the application of the pattern described by a collaboration to a specific situation involving specific classes or instances playing the roles of the collaboration."/>
+      <details key="documentation" value="A collaboration use represents the application of the pattern described by a collaboration to a specific situation involving specific classes or instances playing the roles of the collaboration.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="collaborationRole" ordered="false"
         upperBound="-1" eType="#//ConnectableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration."/>
+        <details key="documentation" value="References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//StructuredClassifier/role"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Generalization" eSuperTypes="#//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier.&#xA;A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier."/>
+      <details key="documentation" value="A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier.&#xA;A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7251,34 +7251,34 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
         lowerBound="1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the general classifier in the Generalization relationship."/>
+        <details key="documentation" value="References the general classifier in the Generalization relationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="generalizationSet" ordered="false"
         upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/generalization">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates a set in which instances of Generalization is considered members."/>
+        <details key="documentation" value="Designates a set in which instances of Generalization is considered members.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubstitutable" ordered="false"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier."/>
+        <details key="documentation" value="Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="specific" ordered="false"
         lowerBound="1" eType="#//Classifier" eOpposite="#//Classifier/generalization">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the specializing classifier in the Generalization relationship."/>
+        <details key="documentation" value="References the specializing classifier in the Generalization relationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GeneralizationSet" eSuperTypes="#//PackageableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A generalization set is a packageable element whose instances define collections of subsets of generalization relationships."/>
+      <details key="documentation" value="A generalization set is a packageable element whose instances define collections of subsets of generalization relationships.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7322,38 +7322,38 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates (via the associated Generalizations) whether or not the set of specific Classifiers are covering for a particular general classifier. When isCovering is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the GeneralizationSet. When isCovering is false, there are one or more instances of the particular general Classifier that are not instances of at least one of its specific Classifiers defined for the GeneralizationSet."/>
+        <details key="documentation" value="Indicates (via the associated Generalizations) whether or not the set of specific Classifiers are covering for a particular general classifier. When isCovering is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the GeneralizationSet. When isCovering is false, there are one or more instances of the particular general Classifier that are not instances of at least one of its specific Classifiers defined for the GeneralizationSet.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDisjoint" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates whether or not the set of specific Classifiers in a Generalization relationship have instance in common. If isDisjoint is true, the specific Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. If isDisjoint is false, the specific Classifiers in a particular GeneralizationSet have one or more members in common; that is, their intersection is not empty. For example, Person could have two Generalization relationships, each with the different specific Classifier: Manager or Staff. This would be disjoint because every instance of Person must either be a Manager or Staff. In contrast, Person could have two Generalization relationships involving two specific (and non-covering) Classifiers: Sales Person and Manager. This GeneralizationSet would not be disjoint because there are instances of Person which can be a Sales Person and a Manager."/>
+        <details key="documentation" value="Indicates whether or not the set of specific Classifiers in a Generalization relationship have instance in common. If isDisjoint is true, the specific Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. If isDisjoint is false, the specific Classifiers in a particular GeneralizationSet have one or more members in common; that is, their intersection is not empty. For example, Person could have two Generalization relationships, each with the different specific Classifier: Manager or Staff. This would be disjoint because every instance of Person must either be a Manager or Staff. In contrast, Person could have two Generalization relationships involving two specific (and non-covering) Classifiers: Sales Person and Manager. This GeneralizationSet would not be disjoint because there are instances of Person which can be a Sales Person and a Manager.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="powertype" ordered="false"
         eType="#//Classifier" eOpposite="#//Classifier/powertypeExtent">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the Classifier that is defined as the power type for the associated GeneralizationSet."/>
+        <details key="documentation" value="Designates the Classifier that is defined as the power type for the associated GeneralizationSet.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
         upperBound="-1" eType="#//Generalization" eOpposite="#//Generalization/generalizationSet">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the instances of Generalization which are members of a given GeneralizationSet."/>
+        <details key="documentation" value="Designates the instances of Generalization which are members of a given GeneralizationSet.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="RedefinableTemplateSignature" eSuperTypes="#//RedefinableElement #//TemplateSignature">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A redefinable template signature supports the addition of formal template parameters in a specialization of a template classifier."/>
+      <details key="documentation" value="A redefinable template signature supports the addition of formal template parameters in a specialization of a template classifier.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
           lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The query isConsistentWith() specifies, for any two RedefinableTemplateSignatures in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining template signature is always consistent with a redefined template signature, since redefinition only adds new formal parameters.&#xA;result = redefinee.oclIsKindOf(RedefineableTemplateSignature)&#xA;redefinee.isRedefinitionContextValid(self)"/>
+          <details key="documentation" value="The query isConsistentWith() specifies, for any two RedefinableTemplateSignatures in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining template signature is always consistent with a redefined template signature, since redefinition only adds new formal parameters.&#xA;result = redefinee.oclIsKindOf(RedefineableTemplateSignature)&#xA;redefinee.isRedefinitionContextValid(self)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
         <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
@@ -7380,14 +7380,14 @@
     </eOperations>
     <eOperations name="getInheritedParameters" ordered="false" upperBound="-1" eType="#//TemplateParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for RedefinableTemplateSignature::/inheritedParameter : TemplateParameter&#xA;true"/>
+        <details key="documentation" value="Missing derivation for RedefinableTemplateSignature::/inheritedParameter : TemplateParameter&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extendedSignature" ordered="false"
         upperBound="-1" eType="#//RedefinableTemplateSignature">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template signature that is extended by this template signature."/>
+        <details key="documentation" value="The template signature that is extended by this template signature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
@@ -7395,14 +7395,14 @@
         upperBound="-1" eType="#//TemplateParameter" changeable="false" volatile="true"
         transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameters of the extendedSignature."/>
+        <details key="documentation" value="The formal template parameters of the extendedSignature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//TemplateSignature/parameter"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
         lowerBound="1" eType="#//Classifier" changeable="false" volatile="true" transient="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifier that owns this template signature."/>
+        <details key="documentation" value="The classifier that owns this template signature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="redefines" references="#//TemplateSignature/template"/>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
@@ -7410,7 +7410,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="UseCase" eSuperTypes="#//BehavioredClassifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system."/>
+      <details key="documentation" value="A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7490,40 +7490,40 @@
     </eOperations>
     <eOperations name="allIncludedUseCases" ordered="false" upperBound="-1" eType="#//UseCase">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.&#xA;result = self.include->union(self.include->collect(in | in.allIncludedUseCases()))"/>
+        <details key="documentation" value="The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.&#xA;result = self.include->union(self.include->collect(in | in.allIncludedUseCases()))&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extend" ordered="false"
         upperBound="-1" eType="#//Extend" containment="true" eOpposite="#//Extend/extension">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Extend relationships owned by this use case."/>
+        <details key="documentation" value="References the Extend relationships owned by this use case.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extensionPoint" ordered="false"
         upperBound="-1" eType="#//ExtensionPoint" containment="true" eOpposite="#//ExtensionPoint/useCase">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the ExtensionPoints owned by the use case."/>
+        <details key="documentation" value="References the ExtensionPoints owned by the use case.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="include" ordered="false"
         upperBound="-1" eType="#//Include" containment="true" eOpposite="#//Include/includingCase">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Include relationships owned by this use case."/>
+        <details key="documentation" value="References the Include relationships owned by this use case.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="subject" ordered="false"
         upperBound="-1" eType="#//Classifier" eOpposite="#//Classifier/useCase">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it."/>
+        <details key="documentation" value="References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Extend" eSuperTypes="#//NamedElement #//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A relationship from an extending use case to an extended use case that specifies how and when the behavior defined in the extending use case can be inserted into the behavior defined in the extended use case."/>
+      <details key="documentation" value="A relationship from an extending use case to an extended use case that specifies how and when the behavior defined in the extending use case can be inserted into the behavior defined in the extended use case.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="extension_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7547,34 +7547,34 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false"
         eType="#//Constraint" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional."/>
+        <details key="documentation" value="References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extendedCase" ordered="false"
         lowerBound="1" eType="#//UseCase">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the use case that is being extended."/>
+        <details key="documentation" value="References the use case that is being extended.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extensionLocation" lowerBound="1"
         upperBound="-1" eType="#//ExtensionPoint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.)"/>
+        <details key="documentation" value="An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="extension" ordered="false"
         lowerBound="1" eType="#//UseCase" eOpposite="#//UseCase/extend">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the use case that represents the extension and owns the extend relationship."/>
+        <details key="documentation" value="References the use case that represents the extension and owns the extend relationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/source #//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExtensionPoint" eSuperTypes="#//RedefinableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An extension point identifies a point in the behavior of a use case where that behavior can be extended by the behavior of some other (extending) use case, as specified by an extend relationship."/>
+      <details key="documentation" value="An extension point identifies a point in the behavior of a use case where that behavior can be extended by the behavior of some other (extending) use case, as specified by an extend relationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7598,52 +7598,52 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="useCase" ordered="false"
         lowerBound="1" eType="#//UseCase" eOpposite="#//UseCase/extensionPoint">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the use case that owns this extension point."/>
+        <details key="documentation" value="References the use case that owns this extension point.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Include" eSuperTypes="#//NamedElement #//DirectedRelationship">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An include relationship defines that a use case contains the behavior defined in another use case."/>
+      <details key="documentation" value="An include relationship defines that a use case contains the behavior defined in another use case.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="addition" ordered="false"
         lowerBound="1" eType="#//UseCase">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the use case that is to be included."/>
+        <details key="documentation" value="References the use case that is to be included.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="includingCase" ordered="false"
         lowerBound="1" eType="#//UseCase" eOpposite="#//UseCase/include">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the use case which will include the addition and owns the include relationship."/>
+        <details key="documentation" value="References the use case which will include the addition and owns the include relationship.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//DirectedRelationship/source #//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Substitution" eSuperTypes="#//Realization">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A substitution is a relationship between two classifiers signifies that the substituting classifier complies with the contract specified by the contract classifier. This implies that instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected."/>
+      <details key="documentation" value="A substitution is a relationship between two classifiers signifies that the substituting classifier complies with the contract specified by the contract classifier. This implies that instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
         lowerBound="1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The contract with which the substituting classifier complies."/>
+        <details key="documentation" value="The contract with which the substituting classifier complies.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Dependency/supplier"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="substitutingClassifier"
         ordered="false" lowerBound="1" eType="#//Classifier" eOpposite="#//Classifier/substitution">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected."/>
+        <details key="documentation" value="Instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ClassifierTemplateParameter" eSuperTypes="#//TemplateParameter">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A classifier template parameter exposes a classifier as a formal template parameter."/>
+      <details key="documentation" value="A classifier template parameter exposes a classifier as a formal template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="parameteredElement">
@@ -7652,7 +7652,7 @@
       <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
           lowerBound="1" eType="#//ParameterableElement" eOpposite="#//Classifier/%duplicates%/templateParameter">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="The parameterable classifier for this template parameter."/>
+          <details key="documentation" value="The parameterable classifier for this template parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
       </contents>
@@ -7680,19 +7680,19 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter."/>
+        <details key="documentation" value="Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="constrainingClassifier"
         ordered="false" upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifiers that constrain the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted; otherwise, it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument."/>
+        <details key="documentation" value="The classifiers that constrain the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted; otherwise, it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//Feature">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A delegation connector is a connector that links the external contract of a component (as specified by its ports) to the realization of that behavior. It represents the forwarding of events (operation requests and events): a signal that arrives at a port that has a delegation connector to one or more parts or ports on parts will be passed on to those targets for handling. An assembly connector is a connector between two or more parts or ports on parts that defines that one or more parts provide the services that other parts use.&#xA;Specifies a link that enables communication between two or more instances. This link may be an instance of an association, or it may represent the possibility of the instances being able to communicate because their identities are known by virtue of being passed in as parameters, held in variables or slots, or because the communicating instances are the same instance. The link may be realized by something as simple as a pointer or by something as complex as a network connection. In contrast to associations, which specify links between any instance of the associated classifiers, connectors specify links between instances playing the connected parts only."/>
+      <details key="documentation" value="A delegation connector is a connector that links the external contract of a component (as specified by its ports) to the realization of that behavior. It represents the forwarding of events (operation requests and events): a signal that arrives at a port that has a delegation connector to one or more parts or ports on parts will be passed on to those targets for handling. An assembly connector is a connector between two or more parts or ports on parts that defines that one or more parts provide the services that other parts use.&#xA;Specifies a link that enables communication between two or more instances. This link may be an instance of an association, or it may represent the possibility of the instances being able to communicate because their identities are known by virtue of being passed in as parameters, held in variables or slots, or because the communicating instances are the same instance. The link may be realized by something as simple as a pointer or by something as complex as a network connection. In contrast to associations, which specify links between any instance of the associated classifiers, connectors specify links between instances playing the connected parts only.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7772,20 +7772,20 @@
     </eOperations>
     <eOperations name="getKind" ordered="false" lowerBound="1" eType="#//ConnectorKind">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Connector::/kind : ConnectorKind&#xA;result =&#xA;if end->exists(&#xA;&#x9;&#x9;role.oclIsKindOf(Port) &#xA;&#x9;&#x9;and partWithPort->isEmpty()&#xA;&#x9;&#x9;and not role.oclAsType(Port).isBehavior)&#xA;then ConnectorKind::delegation &#xA;else ConnectorKind::assembly &#xA;endif"/>
+        <details key="documentation" value="Missing derivation for Connector::/kind : ConnectorKind&#xA;result =&#xA;if end->exists(&#xA;&#x9;&#x9;role.oclIsKindOf(Port) &#xA;&#x9;&#x9;and partWithPort->isEmpty()&#xA;&#x9;&#x9;and not role.oclAsType(Port).isBehavior)&#xA;then ConnectorKind::delegation &#xA;else ConnectorKind::assembly &#xA;endif&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
         upperBound="-1" eType="#//Behavior">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of Behaviors that specify the valid interaction patterns across the connector."/>
+        <details key="documentation" value="The set of Behaviors that specify the valid interaction patterns across the connector.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="2" upperBound="-1"
         eType="#//ConnectorEnd" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered."/>
+        <details key="documentation" value="A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -7793,25 +7793,25 @@
         eType="#//ConnectorKind" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates the kind of connector. This is derived: a connector with one or more ends connected to a Port which is not on a Part and which is not a behavior port is a delegation; otherwise it is an assembly."/>
+        <details key="documentation" value="Indicates the kind of connector. This is derived: a connector with one or more ends connected to a Port which is not on a Part and which is not a behavior port is a delegation; otherwise it is an assembly.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedConnector" ordered="false"
         upperBound="-1" eType="#//Connector">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced."/>
+        <details key="documentation" value="A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Association">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional association that specifies the link corresponding to this connector."/>
+        <details key="documentation" value="An optional association that specifies the link corresponding to this connector.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="ConnectorKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ConnectorKind is an enumeration type."/>
+      <details key="documentation" value="ConnectorKind is an enumeration type.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="assembly">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -7826,33 +7826,33 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Image" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Physical definition of a graphical image."/>
+      <details key="documentation" value="Physical definition of a graphical image.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="content" ordered="false"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This contains the serialization of the image according to the format. The value could represent a bitmap, image such as a GIF file, or drawing 'instructions' using a standard such as Scalable Vector Graphic (SVG) (which is XML based)."/>
+        <details key="documentation" value="This contains the serialization of the image according to the format. The value could represent a bitmap, image such as a GIF file, or drawing 'instructions' using a standard such as Scalable Vector Graphic (SVG) (which is XML based).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="format" ordered="false"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This indicates the format of the content - which is how the string content should be interpreted. The following values are reserved: SVG, GIF, PNG, JPG, WMF, EMF, BMP. In addition the prefix 'MIME: ' is also reserved. This option can be used as an alternative to express the reserved values above, for example &quot;SVG&quot; could instead be expressed as &quot;MIME: image/svg+xml&quot;."/>
+        <details key="documentation" value="This indicates the format of the content - which is how the string content should be interpreted. The following values are reserved: SVG, GIF, PNG, JPG, WMF, EMF, BMP. In addition the prefix 'MIME: ' is also reserved. This option can be used as an alternative to express the reserved values above, for example &quot;SVG&quot; could instead be expressed as &quot;MIME: image/svg+xml&quot;.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" ordered="false"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="This contains a location that can be used by a tool to locate the image as an alternative to embedding it in the stereotype."/>
+        <details key="documentation" value="This contains a location that can be used by a tool to locate the image as an alternative to embedding it in the stereotype.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="OpaqueExpression" eSuperTypes="#//ValueSpecification">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.&#xA;Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result."/>
+      <details key="documentation" value="An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.&#xA;Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
@@ -7921,41 +7921,41 @@
     </eOperations>
     <eOperations name="isIntegral" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isIntegral() tells whether an expression is intended to produce an integer.&#xA;result = false"/>
+        <details key="documentation" value="The query isIntegral() tells whether an expression is intended to produce an integer.&#xA;result = false&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isNonNegative" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isNonNegative() tells whether an integer expression has a non-negative value.&#xA;result = false&#xA;self.isIntegral()"/>
+        <details key="documentation" value="The query isNonNegative() tells whether an integer expression has a non-negative value.&#xA;result = false&#xA;self.isIntegral()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="isPositive" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isPositive() tells whether an integer expression has a positive value.&#xA;result = false&#xA;self.isIntegral()"/>
+        <details key="documentation" value="The query isPositive() tells whether an integer expression has a positive value.&#xA;result = false&#xA;self.isIntegral()&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getResult" ordered="false" eType="#//Parameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for OpaqueExpression::/result : Parameter&#xA;true"/>
+        <details key="documentation" value="Missing derivation for OpaqueExpression::/result : Parameter&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="value" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query value() gives an integer value for an expression intended to produce one.&#xA;self.isIntegral()&#xA;true"/>
+        <details key="documentation" value="The query value() gives an integer value for an expression intended to produce one.&#xA;self.isIntegral()&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
         eType="#//Behavior">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the behavior of the opaque expression."/>
+        <details key="documentation" value="Specifies the behavior of the opaque expression.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" unique="false" upperBound="-1"
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The text of the expression, possibly in multiple languages."/>
+        <details key="documentation" value="The text of the expression, possibly in multiple languages.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
@@ -7965,19 +7965,19 @@
         eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"
         unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order."/>
+        <details key="documentation" value="Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
         eType="#//Parameter" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior."/>
+        <details key="documentation" value="Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AcceptCallAction" eSuperTypes="#//AcceptEventAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An accept call action is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the reply action necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects."/>
+      <details key="documentation" value="An accept call action is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the reply action necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="trigger_call_event" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8039,14 +8039,14 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" ordered="false"
         lowerBound="1" eType="#//OutputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model."/>
+        <details key="documentation" value="Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/output"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AcceptEventAction" eSuperTypes="#//Action">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A accept event action is an action that waits for the occurrence of an event meeting specified conditions."/>
+      <details key="documentation" value="A accept event action is an action that waits for the occurrence of an event meeting specified conditions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="no_input_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8128,31 +8128,31 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event."/>
+        <details key="documentation" value="Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
         upperBound="-1" eType="#//OutputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved."/>
+        <details key="documentation" value="Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/output"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//Trigger" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted."/>
+        <details key="documentation" value="The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Action" abstract="true" eSuperTypes="#//ExecutableNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An action has pre- and post-conditions.&#xA;An action represents a single step within an activity, that is, one that is not further decomposed within the activity.&#xA;An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise."/>
+      <details key="documentation" value="An action has pre- and post-conditions.&#xA;An action represents a single step within an activity, that is, one that is not further decomposed within the activity.&#xA;An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="getContext" ordered="false" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Action::/context : Classifier&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Action::/context : Classifier&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
@@ -8160,13 +8160,13 @@
         eType="#//Classifier" changeable="false" volatile="true" transient="true"
         derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifier that owns the behavior of which this action is a part."/>
+        <details key="documentation" value="The classifier that owns the behavior of which this action is a part.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="input" upperBound="-1"
         eType="#//InputPin" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of input pins connected to the Action. These are among the total set of inputs."/>
+        <details key="documentation" value="The ordered set of input pins connected to the Action. These are among the total set of inputs.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
@@ -8175,27 +8175,27 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed."/>
+        <details key="documentation" value="If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="localPostcondition" ordered="false"
         upperBound="-1" eType="#//Constraint" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Constraint that must be satisfied when executed is completed."/>
+        <details key="documentation" value="Constraint that must be satisfied when executed is completed.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="localPrecondition" ordered="false"
         upperBound="-1" eType="#//Constraint" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Constraint that must be satisfied when execution is started."/>
+        <details key="documentation" value="Constraint that must be satisfied when execution is started.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="output" upperBound="-1"
         eType="#//OutputPin" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of output pins connected to the Action. The action places its results onto pins in this set."/>
+        <details key="documentation" value="The ordered set of output pins connected to the Action. The action places its results onto pins in this set.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
@@ -8203,19 +8203,19 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExecutableNode" abstract="true" eSuperTypes="#//ActivityNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.&#xA;An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers."/>
+      <details key="documentation" value="An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.&#xA;An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="handler" ordered="false"
         upperBound="-1" eType="#//ExceptionHandler" containment="true" eOpposite="#//ExceptionHandler/protectedNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node."/>
+        <details key="documentation" value="A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityNode" abstract="true" eSuperTypes="#//RedefinableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ActivityNode is an abstract class for points in the flow of an activity connected by edges."/>
+      <details key="documentation" value="ActivityNode is an abstract class for points in the flow of an activity connected by edges.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8258,62 +8258,62 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
         eType="#//Activity" volatile="true" transient="true" derived="true" eOpposite="#//Activity/node">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Activity containing the node."/>
+        <details key="documentation" value="Activity containing the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/node">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Partitions containing the node."/>
+        <details key="documentation" value="Partitions containing the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" ordered="false"
         eType="#//StructuredActivityNode" eOpposite="#//StructuredActivityNode/node">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Structured activity node containing the node."/>
+        <details key="documentation" value="Structured activity node containing the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityNode/inGroup #//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inInterruptibleRegion"
         ordered="false" upperBound="-1" eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/node">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Interruptible regions containing the node."/>
+        <details key="documentation" value="Interruptible regions containing the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
         upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/source">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Edges that have the node as source."/>
+        <details key="documentation" value="Edges that have the node as source.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
         upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/target">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Edges that have the node as target."/>
+        <details key="documentation" value="Edges that have the node as target.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
         upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
         transient="true" derived="true" eOpposite="#//ActivityGroup/containedNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Groups containing the node."/>
+        <details key="documentation" value="Groups containing the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedNode" ordered="false"
         upperBound="-1" eType="#//ActivityNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Inherited nodes replaced by this node in a specialization of the activity."/>
+        <details key="documentation" value="Inherited nodes replaced by this node in a specialization of the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Activity" eSuperTypes="#//Behavior">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An activity is the specification of parameterized behavior as the coordinated sequencing of subordinate units whose individual elements are actions."/>
+      <details key="documentation" value="An activity is the specification of parameterized behavior as the coordinated sequencing of subordinate units whose individual elements are actions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="activity_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8383,14 +8383,14 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
         eType="#//ActivityEdge" containment="true" eOpposite="#//ActivityEdge/activity">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Edges expressing flow between nodes of the activity."/>
+        <details key="documentation" value="Edges expressing flow between nodes of the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
         upperBound="-1" eType="#//Variable" containment="true" eOpposite="#//Variable/activityScope">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Top-level variables in the activity."/>
+        <details key="documentation" value="Top-level variables in the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
@@ -8398,7 +8398,7 @@
         upperBound="-1" eType="#//ActivityGroup" volatile="true" transient="true"
         derived="true" eOpposite="#//ActivityGroup/inActivity">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Top-level groups in the activity."/>
+        <details key="documentation" value="Top-level groups in the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="attribute"/>
@@ -8421,34 +8421,34 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes)."/>
+        <details key="documentation" value="If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes).&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSingleExecution" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, all invocations of the activity are handled by the same execution."/>
+        <details key="documentation" value="If true, all invocations of the activity are handled by the same execution.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="partition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Top-level partitions in the activity."/>
+        <details key="documentation" value="Top-level partitions in the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Activity/group #//Activity/ownedGroup"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNode" ordered="false"
         upperBound="-1" eType="#//StructuredActivityNode" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Top-level structured nodes in the activity."/>
+        <details key="documentation" value="Top-level structured nodes in the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Activity/group #//Activity/node"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
         eType="#//ActivityNode" volatile="true" transient="true" derived="true" eOpposite="#//ActivityNode/activity">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Nodes coordinated by the activity."/>
+        <details key="documentation" value="Nodes coordinated by the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="attribute"/>
@@ -8462,7 +8462,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityGroup" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ActivityGroup is an abstract class for defining sets of nodes and edges in an activity."/>
+      <details key="documentation" value="ActivityGroup is an abstract class for defining sets of nodes and edges in an activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="group_owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8525,7 +8525,7 @@
         upperBound="-1" eType="#//ActivityEdge" changeable="false" volatile="true"
         transient="true" derived="true" eOpposite="#//ActivityEdge/inGroup">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Edges immediately contained in the group."/>
+        <details key="documentation" value="Edges immediately contained in the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
@@ -8533,14 +8533,14 @@
         upperBound="-1" eType="#//ActivityNode" changeable="false" volatile="true"
         transient="true" derived="true" eOpposite="#//ActivityNode/inGroup">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Nodes immediately contained in the group."/>
+        <details key="documentation" value="Nodes immediately contained in the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inActivity" ordered="false"
         eType="#//Activity" volatile="true" transient="true" derived="true" eOpposite="#//Activity/group">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Activity containing the group."/>
+        <details key="documentation" value="Activity containing the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
@@ -8548,7 +8548,7 @@
         upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
         transient="true" derived="true" eOpposite="#//ActivityGroup/superGroup">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Groups immediately contained in the group."/>
+        <details key="documentation" value="Groups immediately contained in the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
@@ -8557,7 +8557,7 @@
         eType="#//ActivityGroup" changeable="false" volatile="true" transient="true"
         derived="true" eOpposite="#//ActivityGroup/subgroup">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Group immediately containing the group."/>
+        <details key="documentation" value="Group immediately containing the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
       <eAnnotations source="subsets" references="#//Element/owner"/>
@@ -8565,7 +8565,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityEdge" abstract="true" eSuperTypes="#//RedefinableElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Activity edges can be contained in interruptible regions.&#xA;An activity edge is an abstract class for directed connections between two activity nodes."/>
+      <details key="documentation" value="Activity edges can be contained in interruptible regions.&#xA;An activity edge is an abstract class for directed connections between two activity nodes.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8627,60 +8627,60 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
         eType="#//Activity" eOpposite="#//Activity/edge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Activity containing the edge."/>
+        <details key="documentation" value="Activity containing the edge.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
         lowerBound="1" eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specification evaluated at runtime to determine if the edge can be traversed."/>
+        <details key="documentation" value="Specification evaluated at runtime to determine if the edge can be traversed.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/edge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Partitions containing the edge."/>
+        <details key="documentation" value="Partitions containing the edge.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityEdge/inGroup"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" ordered="false"
         eType="#//StructuredActivityNode" eOpposite="#//StructuredActivityNode/edge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Structured activity node containing the edge."/>
+        <details key="documentation" value="Structured activity node containing the edge.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityEdge/inGroup #//Element/owner"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interrupts" ordered="false"
         eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/interruptingEdge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Region that the edge can interrupt."/>
+        <details key="documentation" value="Region that the edge can interrupt.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedEdge" ordered="false"
         upperBound="-1" eType="#//ActivityEdge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Inherited edges replaced by this edge in a specialization of the activity."/>
+        <details key="documentation" value="Inherited edges replaced by this edge in a specialization of the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
         lowerBound="1" eType="#//ActivityNode" eOpposite="#//ActivityNode/outgoing">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Node from which tokens are taken when they traverse the edge."/>
+        <details key="documentation" value="Node from which tokens are taken when they traverse the edge.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
         lowerBound="1" eType="#//ActivityNode" eOpposite="#//ActivityNode/incoming">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Node to which tokens are put when they traverse the edge."/>
+        <details key="documentation" value="Node to which tokens are put when they traverse the edge.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="weight" ordered="false"
         lowerBound="1" eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The minimum number of tokens that must traverse the edge at the same time."/>
+        <details key="documentation" value="The minimum number of tokens that must traverse the edge at the same time.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
@@ -8688,14 +8688,14 @@
         upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
         transient="true" derived="true" eOpposite="#//ActivityGroup/containedEdge">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Groups containing the edge."/>
+        <details key="documentation" value="Groups containing the edge.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="union"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityPartition" eSuperTypes="#//ActivityGroup">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An activity partition is a kind of activity group for identifying actions that have some characteristic in common."/>
+      <details key="documentation" value="An activity partition is a kind of activity group for identifying actions that have some characteristic in common.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="represents_part" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8777,60 +8777,60 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Tells whether the partition groups other partitions along a dimension."/>
+        <details key="documentation" value="Tells whether the partition groups other partitions along a dimension.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isExternal" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Tells whether the partition represents an entity to which the partitioning structure does not apply."/>
+        <details key="documentation" value="Tells whether the partition represents an entity to which the partitioning structure does not apply.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
         eType="#//ActivityNode" eOpposite="#//ActivityNode/inPartition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Nodes immediately contained in the group."/>
+        <details key="documentation" value="Nodes immediately contained in the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityGroup/containedNode"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="represents" ordered="false"
         eType="#//Element">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An element constraining behaviors invoked by nodes in the partition."/>
+        <details key="documentation" value="An element constraining behaviors invoked by nodes in the partition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="subpartition" ordered="false"
         upperBound="-1" eType="#//ActivityPartition" containment="true" eOpposite="#//ActivityPartition/superPartition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Partitions immediately contained in the partition."/>
+        <details key="documentation" value="Partitions immediately contained in the partition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityGroup/subgroup"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="superPartition" ordered="false"
         eType="#//ActivityPartition" eOpposite="#//ActivityPartition/subpartition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Partition immediately containing the partition."/>
+        <details key="documentation" value="Partition immediately containing the partition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityGroup/superGroup"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
         eType="#//ActivityEdge" eOpposite="#//ActivityEdge/inPartition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Edges immediately contained in the group."/>
+        <details key="documentation" value="Edges immediately contained in the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityGroup/containedEdge"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StructuredActivityNode" eSuperTypes="#//Action #//Namespace #//ActivityGroup">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested.&#xA;Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node."/>
+      <details key="documentation" value="A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested.&#xA;Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EReference" name="activity" ordered="false" eType="#//Activity"
           volatile="true" transient="true" derived="true">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="Activity immediately containing the node."/>
+          <details key="documentation" value="Activity immediately containing the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//ActivityGroup/inActivity #//ActivityNode/activity"/>
       </contents>
@@ -8896,42 +8896,48 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, then the actions in the node execute in isolation from actions outside the node."/>
+        <details key="documentation" value="If true, then the actions in the node execute in isolation from actions outside the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
         eType="#//ActivityNode" containment="true" eOpposite="#//ActivityNode/inStructuredNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Nodes immediately contained in the group."/>
+        <details key="documentation" value="Nodes immediately contained in the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityGroup/containedNode #//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNodeInput" ordered="false"
         upperBound="-1" eType="#//InputPin" containment="true">
       <eAnnotations source="subsets" references="#//Action/input"/>
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
+      </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNodeOutput" ordered="false"
         upperBound="-1" eType="#//OutputPin" containment="true">
       <eAnnotations source="subsets" references="#//Action/output"/>
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
+      </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
         upperBound="-1" eType="#//Variable" containment="true" eOpposite="#//Variable/scope">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A variable defined in the scope of the structured activity node. It has no value and may not be accessed"/>
+        <details key="documentation" value="A variable defined in the scope of the structured activity node. It has no value and may not be accessed&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
         eType="#//ActivityEdge" containment="true" eOpposite="#//ActivityEdge/inStructuredNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Edges immediately contained in the structured node."/>
+        <details key="documentation" value="Edges immediately contained in the structured node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityGroup/containedEdge #//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InputPin" eSuperTypes="#//Pin">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An input pin is a pin that holds input values to be consumed by an action."/>
+      <details key="documentation" value="An input pin is a pin that holds input values to be consumed by an action.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="outgoing_edges_structured_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8955,7 +8961,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Pin" abstract="true" eSuperTypes="#//ObjectNode #//MultiplicityElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.&#xA;A pin is an object node for inputs and outputs to actions."/>
+      <details key="documentation" value="A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.&#xA;A pin is an object node for inputs and outputs to actions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="control_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -8980,13 +8986,13 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Tells whether the pins provide data to the actions, or just controls when it executes it."/>
+        <details key="documentation" value="Tells whether the pins provide data to the actions, or just controls when it executes it.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ObjectNode" abstract="true" eSuperTypes="#//ActivityNode #//TypedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An object node is an abstract activity node that is part of defining object flow in an activity.&#xA;Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values."/>
+      <details key="documentation" value="An object node is an abstract activity node that is part of defining object flow in an activity.&#xA;Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="object_flow_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9048,39 +9054,39 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="inState" ordered="false"
         upperBound="-1" eType="#//State">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The required states of the object available at this point in the activity."/>
+        <details key="documentation" value="The required states of the object available at this point in the activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isControlType" ordered="false"
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Tells whether the type of the object node is to be treated as control."/>
+        <details key="documentation" value="Tells whether the type of the object node is to be treated as control.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordering" ordered="false"
         lowerBound="1" eType="#//ObjectNodeOrderingKind" defaultValueLiteral="FIFO">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node."/>
+        <details key="documentation" value="Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="selection" ordered="false"
         eType="#//Behavior">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Selects tokens for outgoing edges."/>
+        <details key="documentation" value="Selects tokens for outgoing edges.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" ordered="false"
         lowerBound="1" eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached."/>
+        <details key="documentation" value="The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="ObjectNodeOrderingKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="ObjectNodeOrderingKind is an enumeration indicating queuing order within a node."/>
+      <details key="documentation" value="ObjectNodeOrderingKind is an enumeration indicating queuing order within a node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="unordered">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9105,7 +9111,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="OutputPin" eSuperTypes="#//Pin">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An output pin is a pin that holds output values produced by an action."/>
+      <details key="documentation" value="An output pin is a pin that holds output values produced by an action.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="incoming_edges_structured_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9129,7 +9135,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A variable is considered a connectable element.&#xA;Variables are elements for passing data between actions indirectly. A local variable stores values shared by the actions within a structured activity group but not accessible outside it. The output of an action may be written to a variable and read for the input to a subsequent action, which is effectively an indirect data flow path. Because there is no predefined relationship between actions that read and write variables, these actions must be sequenced by control flows to prevent race conditions that may occur between actions that read or write the same variable."/>
+      <details key="documentation" value="A variable is considered a connectable element.&#xA;Variables are elements for passing data between actions indirectly. A local variable stores values shared by the actions within a structured activity group but not accessible outside it. The output of an action may be written to a variable and read for the input to a subsequent action, which is effectively an indirect data flow path. Because there is no predefined relationship between actions that read and write variables, these actions must be sequenced by control flows to prevent race conditions that may occur between actions that read or write the same variable.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9152,28 +9158,28 @@
     </eOperations>
     <eOperations name="isAccessibleBy" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable.&#xA;result = true"/>
+        <details key="documentation" value="The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable.&#xA;result = true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eParameters name="a" ordered="false" lowerBound="1" eType="#//Action"/>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="activityScope" ordered="false"
         eType="#//Activity" eOpposite="#//Activity/variable">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An activity that owns the variable."/>
+        <details key="documentation" value="An activity that owns the variable.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="scope" ordered="false"
         eType="#//StructuredActivityNode" eOpposite="#//StructuredActivityNode/variable">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A structured activity node that owns the variable."/>
+        <details key="documentation" value="A structured activity node that owns the variable.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InterruptibleActivityRegion" eSuperTypes="#//ActivityGroup">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An interruptible activity region is an activity group that supports termination of tokens flowing in the portions of an activity."/>
+      <details key="documentation" value="An interruptible activity region is an activity group that supports termination of tokens flowing in the portions of an activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="interrupting_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9197,20 +9203,20 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
         eType="#//ActivityNode" eOpposite="#//ActivityNode/inInterruptibleRegion">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Nodes immediately contained in the group."/>
+        <details key="documentation" value="Nodes immediately contained in the group.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//ActivityGroup/containedNode"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interruptingEdge" ordered="false"
         upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/interrupts">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The edges leaving the region that will abort other tokens flowing in the region."/>
+        <details key="documentation" value="The edges leaving the region that will abort other tokens flowing in the region.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExceptionHandler" eSuperTypes="#//Element">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node."/>
+      <details key="documentation" value="An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="one_input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9291,32 +9297,32 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="exceptionInput" ordered="false"
         lowerBound="1" eType="#//ObjectNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An object node within the handler body. When the handler catches an exception, the exception token is placed in this node, causing the body to execute."/>
+        <details key="documentation" value="An object node within the handler body. When the handler catches an exception, the exception token is placed in this node, causing the body to execute.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="exceptionType" ordered="false"
         lowerBound="1" upperBound="-1" eType="#//Classifier">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The kind of instances that the handler catches. If an exception occurs whose type is any of the classifiers in the set, the handler catches the exception and executes its body."/>
+        <details key="documentation" value="The kind of instances that the handler catches. If an exception occurs whose type is any of the classifiers in the set, the handler catches the exception and executes its body.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="handlerBody" ordered="false"
         lowerBound="1" eType="#//ExecutableNode">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A node that is executed if the handler satisfies an uncaught exception."/>
+        <details key="documentation" value="A node that is executed if the handler satisfies an uncaught exception.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="protectedNode" ordered="false"
         lowerBound="1" eType="#//ExecutableNode" eOpposite="#//ExecutableNode/handler">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The node protected by the handler. The handler is examined if an exception propagates to the outside of the node."/>
+        <details key="documentation" value="The node protected by the handler. The handler is examined if an exception propagates to the outside of the node.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/owner"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActionExecutionSpecification" eSuperTypes="#//ExecutionSpecification">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An action execution specification is a kind of execution specification representing the execution of an action."/>
+      <details key="documentation" value="An action execution specification is a kind of execution specification representing the execution of an action.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="action_referenced" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9340,14 +9346,14 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="action" ordered="false"
         lowerBound="1" eType="#//Action">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Action whose execution is occurring."/>
+        <details key="documentation" value="Action whose execution is occurring.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExecutionSpecification" abstract="true"
       eSuperTypes="#//InteractionFragment">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An execution specification is a specification of the execution of a unit of behavior or action within the lifeline. The duration of an execution specification is represented by two cccurrence specifications, the start occurrence specification and the finish occurrence specification."/>
+      <details key="documentation" value="An execution specification is a specification of the execution of a unit of behavior or action within the lifeline. The duration of an execution specification is represented by two cccurrence specifications, the start occurrence specification and the finish occurrence specification.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="same_lifeline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9371,52 +9377,52 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="finish" ordered="false"
         lowerBound="1" eType="#//OccurrenceSpecification">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the OccurrenceSpecification that designates the finish of the Action or Behavior."/>
+        <details key="documentation" value="References the OccurrenceSpecification that designates the finish of the Action or Behavior.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="start" ordered="false"
         lowerBound="1" eType="#//OccurrenceSpecification">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the OccurrenceSpecification that designates the start of the Action or Behavior"/>
+        <details key="documentation" value="References the OccurrenceSpecification that designates the start of the Action or Behavior&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InteractionFragment" abstract="true"
       eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself."/>
+      <details key="documentation" value="InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="covered" ordered="false"
         upperBound="-1" eType="#//Lifeline" eOpposite="#//Lifeline/coveredBy">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Lifelines that the InteractionFragment involves."/>
+        <details key="documentation" value="References the Lifelines that the InteractionFragment involves.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="enclosingInteraction" ordered="false"
         eType="#//Interaction" eOpposite="#//Interaction/fragment">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Interaction enclosing this InteractionFragment."/>
+        <details key="documentation" value="The Interaction enclosing this InteractionFragment.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="enclosingOperand" ordered="false"
         eType="#//InteractionOperand" eOpposite="#//InteractionOperand/fragment">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operand enclosing this InteractionFragment (they may nest recursively)"/>
+        <details key="documentation" value="The operand enclosing this InteractionFragment (they may nest recursively)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="generalOrdering" ordered="false"
         upperBound="-1" eType="#//GeneralOrdering" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The general ordering relationships contained in this fragment."/>
+        <details key="documentation" value="The general ordering relationships contained in this fragment.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Lifeline" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A lifeline represents an individual participant in the interaction. While parts and structural features may have multiplicity greater than 1, lifelines represent only one interacting entity."/>
+      <details key="documentation" value="A lifeline represents an individual participant in the interaction. While parts and structural features may have multiplicity greater than 1, lifelines represent only one interacting entity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="interaction_uses_share_lifeline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9478,39 +9484,39 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="decomposedAs" ordered="false"
         eType="#//PartDecomposition">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Interaction that represents the decomposition."/>
+        <details key="documentation" value="References the Interaction that represents the decomposition.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interaction" ordered="false"
         lowerBound="1" eType="#//Interaction" eOpposite="#//Interaction/lifeline">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Interaction enclosing this Lifeline."/>
+        <details key="documentation" value="References the Interaction enclosing this Lifeline.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="represents" ordered="false"
         eType="#//ConnectableElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the ConnectableElement within the classifier that contains the enclosing interaction."/>
+        <details key="documentation" value="References the ConnectableElement within the classifier that contains the enclosing interaction.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="selector" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set."/>
+        <details key="documentation" value="If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="coveredBy" ordered="false"
         upperBound="-1" eType="#//InteractionFragment" eOpposite="#//InteractionFragment/covered">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the InteractionFragments in which this Lifeline takes part."/>
+        <details key="documentation" value="References the InteractionFragments in which this Lifeline takes part.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PartDecomposition" eSuperTypes="#//InteractionUse">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A part decomposition is a description of the internal interactions of one lifeline relative to an interaction."/>
+      <details key="documentation" value="A part decomposition is a description of the internal interactions of one lifeline relative to an interaction.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="parts_of_internal_structures" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9572,7 +9578,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InteractionUse" eSuperTypes="#//InteractionFragment">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An interaction use refers to an interaction. The interaction use is a shorthand for copying the contents of the referenced interaction where the interaction use is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones."/>
+      <details key="documentation" value="An interaction use refers to an interaction. The interaction use is a shorthand for copying the contents of the referenced interaction where the interaction use is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="all_lifelines" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9691,40 +9697,40 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="actualGate" ordered="false"
         upperBound="-1" eType="#//Gate" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The actual gates of the InteractionUse"/>
+        <details key="documentation" value="The actual gates of the InteractionUse&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The actual arguments of the Interaction"/>
+        <details key="documentation" value="The actual arguments of the Interaction&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="refersTo" ordered="false"
         lowerBound="1" eType="#//Interaction">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Refers to the Interaction that defines its meaning"/>
+        <details key="documentation" value="Refers to the Interaction that defines its meaning&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="returnValue" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The value of the executed Interaction."/>
+        <details key="documentation" value="The value of the executed Interaction.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="returnValueRecipient" ordered="false"
         eType="#//Property">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The recipient of the return value."/>
+        <details key="documentation" value="The recipient of the return value.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Gate" eSuperTypes="#//MessageEnd">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A gate is a connection point for relating a message outside an interaction fragment with a message inside the interaction fragment."/>
+      <details key="documentation" value="A gate is a connection point for relating a message outside an interaction fragment with a message inside the interaction fragment.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="messages_combined_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9767,18 +9773,18 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="MessageEnd" abstract="true" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="MessageEnd is an abstract specialization of NamedElement that represents what can occur at the end of a message."/>
+      <details key="documentation" value="MessageEnd is an abstract specialization of NamedElement that represents what can occur at the end of a message.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
         eType="#//Message">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References a Message."/>
+        <details key="documentation" value="References a Message.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Message" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A message defines a particular communication between lifelines of an interaction."/>
+      <details key="documentation" value="A message defines a particular communication between lifelines of an interaction.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="sending_receiving_message_event" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -9915,27 +9921,27 @@
     </eOperations>
     <eOperations name="getMessageKind" ordered="false" lowerBound="1" eType="#//MessageKind">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Missing derivation for Message::/messageKind : MessageKind&#xA;true"/>
+        <details key="documentation" value="Missing derivation for Message::/messageKind : MessageKind&#xA;true&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         <details key="suppressedVisibility" value="true"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The arguments of the Message"/>
+        <details key="documentation" value="The arguments of the Message&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="connector" ordered="false"
         eType="#//Connector">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Connector on which this Message is sent."/>
+        <details key="documentation" value="The Connector on which this Message is sent.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="interaction" ordered="false"
         lowerBound="1" eType="#//Interaction" eOpposite="#//Interaction/message">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The enclosing Interaction owning the Message"/>
+        <details key="documentation" value="The enclosing Interaction owning the Message&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
     </eStructuralFeatures>
@@ -9943,77 +9949,77 @@
         lowerBound="1" eType="#//MessageKind" changeable="false" volatile="true" transient="true"
         defaultValueLiteral="unknown" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The derived kind of the Message (complete, lost, found or unknown)"/>
+        <details key="documentation" value="The derived kind of the Message (complete, lost, found or unknown)&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageSort" ordered="false"
         lowerBound="1" eType="#//MessageSort" defaultValueLiteral="synchCall">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The sort of communication reflected by the Message"/>
+        <details key="documentation" value="The sort of communication reflected by the Message&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="receiveEvent" ordered="false"
         eType="#//MessageEnd">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Receiving of the Message"/>
+        <details key="documentation" value="References the Receiving of the Message&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="sendEvent" ordered="false"
         eType="#//MessageEnd">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Sending of the Message."/>
+        <details key="documentation" value="References the Sending of the Message.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
         eType="#//NamedElement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The signature of the Message is the specification of its content. It refers either an Operation or a Signal."/>
+        <details key="documentation" value="The signature of the Message is the specification of its content. It refers either an Operation or a Signal.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Interaction" eSuperTypes="#//Behavior #//InteractionFragment">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An interaction is a unit of behavior that focuses on the observable exchange of information between connectable elements."/>
+      <details key="documentation" value="An interaction is a unit of behavior that focuses on the observable exchange of information between connectable elements.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="action" ordered="false"
         upperBound="-1" eType="#//Action" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Actions owned by the Interaction."/>
+        <details key="documentation" value="Actions owned by the Interaction.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="formalGate" ordered="false"
         upperBound="-1" eType="#//Gate" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it."/>
+        <details key="documentation" value="Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="fragment" upperBound="-1"
         eType="#//InteractionFragment" containment="true" eOpposite="#//InteractionFragment/enclosingInteraction">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of fragments in the Interaction."/>
+        <details key="documentation" value="The ordered set of fragments in the Interaction.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lifeline" ordered="false"
         upperBound="-1" eType="#//Lifeline" containment="true" eOpposite="#//Lifeline/interaction">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the participants in this Interaction."/>
+        <details key="documentation" value="Specifies the participants in this Interaction.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
         upperBound="-1" eType="#//Message" containment="true" eOpposite="#//Message/interaction">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Messages contained in this Interaction."/>
+        <details key="documentation" value="The Messages contained in this Interaction.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="MessageKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="This is an enumerated type that identifies the type of message."/>
+      <details key="documentation" value="This is an enumerated type that identifies the type of message.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="complete">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10038,7 +10044,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="MessageSort">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="This is an enumerated type that identifies the type of communication action that was used to generate the message."/>
+      <details key="documentation" value="This is an enumerated type that identifies the type of communication action that was used to generate the message.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eLiterals name="synchCall">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10073,7 +10079,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InteractionOperand" eSuperTypes="#//Namespace #//InteractionFragment">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An interaction operand is contained in a combined fragment. An interaction operand represents one operand of the expression given by the enclosing combined fragment."/>
+      <details key="documentation" value="An interaction operand is contained in a combined fragment. An interaction operand represents one operand of the expression given by the enclosing combined fragment.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="guard_directly_prior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10116,21 +10122,21 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
         eType="#//InteractionConstraint" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Constraint of the operand."/>
+        <details key="documentation" value="Constraint of the operand.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="fragment" upperBound="-1"
         eType="#//InteractionFragment" containment="true" eOpposite="#//InteractionFragment/enclosingOperand">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The fragments of the operand."/>
+        <details key="documentation" value="The fragments of the operand.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InteractionConstraint" eSuperTypes="#//Constraint">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An interaction constraint is a Boolean expression that guards an operand in a combined fragment."/>
+      <details key="documentation" value="An interaction constraint is a Boolean expression that guards an operand in a combined fragment.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="maxint_positive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10249,21 +10255,21 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="maxint" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The maximum number of iterations of a loop"/>
+        <details key="documentation" value="The maximum number of iterations of a loop&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="minint" ordered="false"
         eType="#//ValueSpecification" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The minimum number of iterations of a loop"/>
+        <details key="documentation" value="The minimum number of iterations of a loop&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GeneralOrdering" eSuperTypes="#//NamedElement">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A general ordering represents a binary relation between two occurrence specifications, to describe that one occurrence specification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of occurrence cpecifications that may otherwise not have a specified order."/>
+      <details key="documentation" value="A general ordering represents a binary relation between two occurrence specifications, to describe that one occurrence specification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of occurrence cpecifications that may otherwise not have a specified order.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="irreflexsive_transitive_closure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10287,19 +10293,19 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="after" ordered="false"
         lowerBound="1" eType="#//OccurrenceSpecification" eOpposite="#//OccurrenceSpecification/toBefore">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before."/>
+        <details key="documentation" value="The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="before" ordered="false"
         lowerBound="1" eType="#//OccurrenceSpecification" eOpposite="#//OccurrenceSpecification/toAfter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after."/>
+        <details key="documentation" value="The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="OccurrenceSpecification" eSuperTypes="#//InteractionFragment">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An occurrence specification is the basic semantic unit of interactions. The sequences of occurrences specified by them are the meanings of interactions."/>
+      <details key="documentation" value="An occurrence specification is the basic semantic unit of interactions. The sequences of occurrences specified by them are the meanings of interactions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <eAnnotations source="covered">
@@ -10309,7 +10315,7 @@
       <contents xsi:type="ecore:EReference" name="covered" ordered="false" upperBound="-1"
           eType="#//Lifeline">
         <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-          <details key="documentation" value="References the Lifeline on which the OccurrenceSpecification appears."/>
+          <details key="documentation" value="References the Lifeline on which the OccurrenceSpecification appears.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
         </eAnnotations>
         <eAnnotations source="redefines" references="#//InteractionFragment/covered"/>
       </contents>
@@ -10328,19 +10334,19 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="toAfter" ordered="false"
         upperBound="-1" eType="#//GeneralOrdering" eOpposite="#//GeneralOrdering/before">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification"/>
+        <details key="documentation" value="References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="toBefore" ordered="false"
         upperBound="-1" eType="#//GeneralOrdering" eOpposite="#//GeneralOrdering/after">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification"/>
+        <details key="documentation" value="References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActionInputPin" eSuperTypes="#//InputPin">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An action input pin is a kind of pin that executes an action to determine the values to input to another."/>
+      <details key="documentation" value="An action input pin is a kind of pin that executes an action to determine the values to input to another.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10402,19 +10408,19 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="fromAction" ordered="false"
         lowerBound="1" eType="#//Action" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The action used to provide values."/>
+        <details key="documentation" value="The action used to provide values.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Element/ownedElement"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityFinalNode" eSuperTypes="#//FinalNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An activity final node is a final node that stops all flows in an activity."/>
+      <details key="documentation" value="An activity final node is a final node that stops all flows in an activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FinalNode" abstract="true" eSuperTypes="#//ControlNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A final node is an abstract control node at which a flow in an activity stops."/>
+      <details key="documentation" value="A final node is an abstract control node at which a flow in an activity stops.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10438,12 +10444,12 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ControlNode" abstract="true" eSuperTypes="#//ActivityNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A control node is an abstract activity node that coordinates flows in an activity."/>
+      <details key="documentation" value="A control node is an abstract activity node that coordinates flows in an activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ActivityParameterNode" eSuperTypes="#//ObjectNode">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An activity parameter node is an object node for inputs and outputs to activities."/>
+      <details key="documentation" value="An activity parameter node is an object node for inputs and outputs to activities.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="maximum_one_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10581,13 +10587,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
         lowerBound="1" eType="#//Parameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The parameter the object node will be accepting or providing values for."/>
+        <details key="documentation" value="The parameter the object node will be accepting or providing values for.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Actor" eSuperTypes="#//BehavioredClassifier">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An actor specifies a role played by a user or any other system that interacts with the subject."/>
+      <details key="documentation" value="An actor specifies a role played by a user or any other system that interacts with the subject.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10630,7 +10636,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AddStructuralFeatureValueAction" eSuperTypes="#//WriteStructuralFeatureAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An add structural feature value action is a write structural feature action for adding values to a structural feature."/>
+      <details key="documentation" value="An add structural feature value action is a write structural feature action for adding values to a structural feature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10673,7 +10679,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="insertAt" ordered="false"
         eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features."/>
+        <details key="documentation" value="Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/input"/>
     </eStructuralFeatures>
@@ -10681,14 +10687,14 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether existing values of the structural feature of the object should be removed before adding the new value."/>
+        <details key="documentation" value="Specifies whether existing values of the structural feature of the object should be removed before adding the new value.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="WriteStructuralFeatureAction" abstract="true"
       eSuperTypes="#//StructuralFeatureAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="WriteStructuralFeatureAction is an abstract class for structural feature actions that change structural feature values."/>
+      <details key="documentation" value="WriteStructuralFeatureAction is an abstract class for structural feature actions that change structural feature values.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
@@ -10772,14 +10778,14 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
         eType="#//OutputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Gives the output pin on which the result is put."/>
+        <details key="documentation" value="Gives the output pin on which the result is put.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/output"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
         eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Value to be added or removed from the structural feature."/>
+        <details key="documentation" value="Value to be added or removed from the structural feature.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/input"/>
     </eStructuralFeatures>
@@ -10787,7 +10793,7 @@
   <eClassifiers xsi:type="ecore:EClass" name="StructuralFeatureAction" abstract="true"
       eSuperTypes="#//Action">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="StructuralFeatureAction is an abstract class for all structural feature actions."/>
+      <details key="documentation" value="StructuralFeatureAction is an abstract class for all structural feature actions.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10887,20 +10893,20 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
         lowerBound="1" eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Gives the input pin from which the object whose structural feature is to be read or written is obtained."/>
+        <details key="documentation" value="Gives the input pin from which the object whose structural feature is to be read or written is obtained.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/input"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="structuralFeature" ordered="false"
         lowerBound="1" eType="#//StructuralFeature">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Structural feature to be read."/>
+        <details key="documentation" value="Structural feature to be read.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AddVariableValueAction" eSuperTypes="#//WriteVariableAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An add variable value action is a write variable action for adding values to a variable."/>
+      <details key="documentation" value="An add variable value action is a write variable action for adding values to a variable.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="required_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -10943,7 +10949,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="insertAt" ordered="false"
         eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Gives the position at which to insert a new value or move an existing value in ordered variables. The types is UnlimitedINatural, but the value cannot be zero. This pin is omitted for unordered variables."/>
+        <details key="documentation" value="Gives the position at which to insert a new value or move an existing value in ordered variables. The types is UnlimitedINatural, but the value cannot be zero. This pin is omitted for unordered variables.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/input"/>
     </eStructuralFeatures>
@@ -10951,14 +10957,14 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies whether existing values of the variable should be removed before adding the new value."/>
+        <details key="documentation" value="Specifies whether existing values of the variable should be removed before adding the new value.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="WriteVariableAction" abstract="true"
       eSuperTypes="#//VariableAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="WriteVariableAction is an abstract class for variable actions that change variable values."/>
+      <details key="documentation" value="WriteVariableAction is an abstract class for variable actions that change variable values.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11001,14 +11007,14 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
         eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Value to be added or removed from the variable."/>
+        <details key="documentation" value="Value to be added or removed from the variable.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/input"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="VariableAction" abstract="true" eSuperTypes="#//Action">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="VariableAction is an abstract class for actions that operate on a statically specified variable."/>
+      <details key="documentation" value="VariableAction is an abstract class for actions that operate on a statically specified variable.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="scope_of_variable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11032,23 +11038,23 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
         lowerBound="1" eType="#//Variable">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Variable to be read."/>
+        <details key="documentation" value="Variable to be read.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AnyReceiveEvent" eSuperTypes="#//MessageEvent">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A trigger for an AnyReceiveEvent is triggered by the receipt of any message that is not explicitly handled by any related trigger."/>
+      <details key="documentation" value="A trigger for an AnyReceiveEvent is triggered by the receipt of any message that is not explicitly handled by any related trigger.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="MessageEvent" abstract="true" eSuperTypes="#//Event">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A message event specifies the receipt by an object of either a call or a signal."/>
+      <details key="documentation" value="A message event specifies the receipt by an object of either a call or a signal.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="AssociationClass" eSuperTypes="#//Class #//Association">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A model element that has both association and class properties. An AssociationClass can be seen as an association that also has class properties, or as a class that also has association properties. It not only connects a set of classifiers but also defines a set of features that belong to the relationship itself and not to any of the classifiers."/>
+      <details key="documentation" value="A model element that has both association and class properties. An AssociationClass can be seen as an association that also has class properties, or as a class that also has association properties. It not only connects a set of classifiers but also defines a set of features that belong to the relationship itself and not to any of the classifiers.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="disjoint_attributes_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11091,18 +11097,18 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BehaviorExecutionSpecification" eSuperTypes="#//ExecutionSpecification">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A behavior execution specification is a kind of execution specification representing the execution of a behavior."/>
+      <details key="documentation" value="A behavior execution specification is a kind of execution specification representing the execution of a behavior.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
         eType="#//Behavior">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Behavior whose execution is occurring."/>
+        <details key="documentation" value="Behavior whose execution is occurring.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BroadcastSignalAction" eSuperTypes="#//InvocationAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A broadcast signal action is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor."/>
+      <details key="documentation" value="A broadcast signal action is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11145,13 +11151,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
         lowerBound="1" eType="#//Signal">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The specification of signal object transmitted to the target objects."/>
+        <details key="documentation" value="The specification of signal object transmitted to the target objects.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InvocationAction" abstract="true" eSuperTypes="#//Action">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="InvocationAction is an abstract class for the various actions that invoke behavior.&#xA;In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object."/>
+      <details key="documentation" value="InvocationAction is an abstract class for the various actions that invoke behavior.&#xA;In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="on_port_receiver" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11175,20 +11181,20 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
         eType="#//InputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specification of the ordered set of argument values that appears during execution."/>
+        <details key="documentation" value="Specification of the ordered set of argument values that appears during execution.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/input"/>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="onPort" ordered="false"
         eType="#//Port">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked."/>
+        <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CallAction" abstract="true" eSuperTypes="#//InvocationAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="CallAction is an abstract class for actions that invoke behavior and receive return values."/>
+      <details key="documentation" value="CallAction is an abstract class for actions that invoke behavior and receive return values.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eOperations name="synchronous_call" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -11251,20 +11257,20 @@
         lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If true, the call is synchronous and the caller waits for completion of the invoked behavior. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values."/>
+        <details key="documentation" value="If true, the call is synchronous and the caller waits for completion of the invoked behavior. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
         eType="#//OutputPin" containment="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A list of output pins where the results of performing the invocation are placed."/>
+        <details key="documentation" value="A list of output pins where the results of performing the invocation are placed.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
       <eAnnotations source="subsets" references="#//Action/output"/>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CallBehaviorAction" eSuperTypes="#//CallAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A call behavior action is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous. In particular, the invoked behavior may be an activity."/>
+      <details key="documentation" value="A call behavior action is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous. In particular, the invoked behavior may be an activity.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eAnnotations source="duplicates">
       <contents xsi:type="ecore:EOperation" name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
@@ -11329,24 +11335,24 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
         lowerBound="1" eType="#//Behavior">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The invoked behavior. It must be capable of accepting and returning control."/>
+        <details key="documentation" value="The invoked behavior. It must be capable of accepting and returning control.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CallEvent" eSuperTypes="#//MessageEvent">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A call event models the receipt by an object of a message invoking a call of an operation."/>
+      <details key="documentation" value="A call event models the receipt by an object of a message invoking a call of an operation.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
         lowerBound="1" eType="#//Operation">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the operation whose invocation raised the call event."/>
+        <details key="documentation" value="Designates the operation whose invocation raised the call event.&#xA;&lt;p>From package UML (URI {@literal http://www.omg.org/spec/UML/20110701}).&lt;/p>"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CallOperationAction" eSuperTypes="#//CallAction">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A call operation action is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete."/>
+      <details key="documentation" value="A call operation action is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part