public virtual void ValidateDomainEnumeration(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute IsFlags
			if( this.IsFlags == null )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainEnumeration_IsFlags, DslEditorModeling::ModelValidationViolationType.Error, "Property 'IsFlags' has no value although it is required", this));
			}
		}
		public virtual void ValidateDomainProperty(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Name
			if( System.String.IsNullOrEmpty(this.Name) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainProperty_Name, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Name' has no value although it is required", this));
			}
			// validate required attribute Value
			if( System.String.IsNullOrEmpty(this.Value) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainProperty_Value, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Value' has no value although it is required", this));
			}

			// validate reference relationship from DomainProperty to DomainType (Side: DomainProperty)
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.DomainPropertyReferencesDomainType> allMDomainPropertyReferencesDomainTypeInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.DomainPropertyReferencesDomainType>(this, global::Tum.PDE.ModelingDSL.DomainPropertyReferencesDomainType.DomainPropertyDomainRoleId);
			// validate reference relationships --> see if cardinality constraints are met
			if( allMDomainPropertyReferencesDomainTypeInstances0.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainPropertyReferencesDomainType_DomainType, DslEditorModeling::ModelValidationViolationType.Error, "Reference to element of type Domain Type is missing, although it is required. Role name: + DomainType", this));
			}
		}
		public virtual void ValidateExternalType(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Namespace
			if( System.String.IsNullOrEmpty(this.Namespace) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.ExternalType_Namespace, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Namespace' has no value although it is required", this));
			}
		}
		public virtual void ValidateDomainModel(DslEditorModeling::ModelValidationContext context)
		{

			// validate embedding relationship from DomainModel to DomainElements
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.DomainModelHasDomainElements> allMDomainModelHasDomainElementsInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.DomainModelHasDomainElements>(this, global::Tum.PDE.ModelingDSL.DomainModelHasDomainElements.DomainModelDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMDomainModelHasDomainElementsInstances0.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainModelHasDomainElements_DomainElements, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type DomainElements is missing, although it is required.", this));
			}

			// validate embedding relationship from DomainModel to DomainTypes
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.DomainModelHasDomainTypes> allMDomainModelHasDomainTypesInstances1 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.DomainModelHasDomainTypes>(this, global::Tum.PDE.ModelingDSL.DomainModelHasDomainTypes.DomainModelDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMDomainModelHasDomainTypesInstances1.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainModelHasDomainTypes_DomainTypes, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type DomainTypes is missing, although it is required.", this));
			}

			// validate embedding relationship from DomainModel to DETypes
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.DomainModelHasDETypes> allMDomainModelHasDETypesInstances2 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.DomainModelHasDETypes>(this, global::Tum.PDE.ModelingDSL.DomainModelHasDETypes.DomainModelDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMDomainModelHasDETypesInstances2.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainModelHasDETypes_DETypes, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type DETypes is missing, although it is required.", this));
			}

			// validate embedding relationship from DomainModel to DRTypes
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.DomainModelHasDRTypes> allMDomainModelHasDRTypesInstances3 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.DomainModelHasDRTypes>(this, global::Tum.PDE.ModelingDSL.DomainModelHasDRTypes.DomainModelDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMDomainModelHasDRTypesInstances3.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainModelHasDRTypes_DRTypes, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type DRTypes is missing, although it is required.", this));
			}

			// validate embedding relationship from DomainModel to ConversionModelInfo
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.DomainModelHasConversionModelInfo> allMDomainModelHasConversionModelInfoInstances4 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.DomainModelHasConversionModelInfo>(this, global::Tum.PDE.ModelingDSL.DomainModelHasConversionModelInfo.DomainModelDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMDomainModelHasConversionModelInfoInstances4.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DomainModelHasConversionModelInfo_ConversionModelInfo, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type ConversionModelInfo is missing, although it is required.", this));
			}
		}
		public virtual void ValidateEmbeddableElement(DslEditorModeling::ModelValidationContext context)
		{

			// validate reference relationship from Child to Parent (Side: Child)
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.EmbeddingRelationship> allMEmbeddingRelationshipInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.EmbeddingRelationship>(this, global::Tum.PDE.ModelingDSL.EmbeddingRelationship.ChildDomainRoleId);
			// validate reference relationships --> see if cardinality constraints are met
			if( allMEmbeddingRelationshipInstances0.Count > 1 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.EmbeddingRelationship_Parent, DslEditorModeling::ModelValidationViolationType.Error, "There are multiple references to elements of type Embeddable Element, although only one is allowed. Role name: + Parent", this));
			}
		}
		public virtual void ValidateReferenceRelationship(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute SourceMultiplicity
			if( this.SourceMultiplicity == null )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.ReferenceRelationship_SourceMultiplicity, DslEditorModeling::ModelValidationViolationType.Error, "Property 'SourceMultiplicity' has no value although it is required", this));
			}
			// validate required attribute TargetMultiplicity
			if( this.TargetMultiplicity == null )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.ReferenceRelationship_TargetMultiplicity, DslEditorModeling::ModelValidationViolationType.Error, "Property 'TargetMultiplicity' has no value although it is required", this));
			}
		}
		public virtual void ValidateFamilyTreePerson(DslEditorModeling::ModelValidationContext context)
		{

			// validate reference relationship from Husband to Wife (Side: Husband)
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.FamilyTreeDSL.MarriedTo> allMMarriedToInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.FamilyTreeDSL.MarriedTo>(this, global::Tum.FamilyTreeDSL.MarriedTo.HusbandDomainRoleId);
			// validate reference relationships --> see if cardinality constraints are met
			if( allMMarriedToInstances0.Count > 1 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.FamilyTreeDSL.FamilyTreeDSLValidationMessageIds.MarriedTo_Wife, DslEditorModeling::ModelValidationViolationType.Error, "There are multiple references to elements of type Family Tree Person, although only one is allowed. Role name: + Wife", this));
			}

			// validate reference relationship from Husband to Wife (Side: Wife)
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.FamilyTreeDSL.MarriedTo> allMMarriedToInstances1 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.FamilyTreeDSL.MarriedTo>(this, global::Tum.FamilyTreeDSL.MarriedTo.WifeDomainRoleId);
			// validate reference relationships --> see if cardinality constraints are met
			if( allMMarriedToInstances1.Count > 1 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.FamilyTreeDSL.FamilyTreeDSLValidationMessageIds.MarriedTo_Husband, DslEditorModeling::ModelValidationViolationType.Error, "There are multiple references to elements of type Family Tree Person, although only one is allowed. Role name: + Husband", this));
			}
		}
		public virtual void ValidateMusterbibliothek(DslEditorModeling::ModelValidationContext context)
		{

			// validate embedding relationship from Musterbibliothek to VModell
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.MusterbibliothekHasVModell> allMMusterbibliothekHasVModellInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.MusterbibliothekHasVModell>(this, global::Tum.VModellXT.MusterbibliothekHasVModell.MusterbibliothekDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMMusterbibliothekHasVModellInstances0.Count > 1 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.MusterbibliothekHasVModell_VModell, DslEditorModeling::ModelValidationViolationType.Error, "Multiple Embedded elements of type VModell found, although only one is allowed.", this));
			}
		}
		public virtual void ValidateThemenmuster(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Name
			if( System.String.IsNullOrEmpty(this.Name) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.Themenmuster_Name, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Name' has no value although it is required", this));
			}
		}
		public virtual void ValidateVModellvariante(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Name
			if( System.String.IsNullOrEmpty(this.Name) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvariante_Name, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Name' has no value although it is required", this));
			}
			// validate required attribute Version
			if( System.String.IsNullOrEmpty(this.Version) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvariante_Version, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Version' has no value although it is required", this));
			}
			// validate required attribute VersionIntern
			if( System.String.IsNullOrEmpty(this.VersionIntern) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvariante_VersionIntern, DslEditorModeling::ModelValidationViolationType.Error, "Property 'VersionIntern' has no value although it is required", this));
			}
			// validate required attribute CopyrightKurz
			if( System.String.IsNullOrEmpty(this.CopyrightKurz) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvariante_CopyrightKurz, DslEditorModeling::ModelValidationViolationType.Error, "Property 'CopyrightKurz' has no value although it is required", this));
			}
			// validate required attribute CopyrightLang
			if( this.CopyrightLang == null )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvariante_CopyrightLang, DslEditorModeling::ModelValidationViolationType.Error, "Property 'CopyrightLang' has no value although it is required", this));
			}

			// validate embedding relationship from VModellvariante to VModellStruktur
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasVModellStruktur> allMVModellvarianteHasVModellStrukturInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasVModellStruktur>(this, global::Tum.VModellXT.VModellvarianteHasVModellStruktur.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasVModellStrukturInstances0.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasVModellStruktur_VModellStruktur, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type VModellStruktur is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Textbausteine
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasTextbausteine> allMVModellvarianteHasTextbausteineInstances1 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasTextbausteine>(this, global::Tum.VModellXT.VModellvarianteHasTextbausteine.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasTextbausteineInstances1.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasTextbausteine_Textbausteine, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Textbausteine is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Vorgehensbausteine
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasVorgehensbausteine> allMVModellvarianteHasVorgehensbausteineInstances2 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasVorgehensbausteine>(this, global::Tum.VModellXT.VModellvarianteHasVorgehensbausteine.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasVorgehensbausteineInstances2.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasVorgehensbausteine_Vorgehensbausteine, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Vorgehensbausteine is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Rollen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasRollen> allMVModellvarianteHasRollenInstances3 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasRollen>(this, global::Tum.VModellXT.VModellvarianteHasRollen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasRollenInstances3.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasRollen_Rollen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Rollen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to PDSSpezifikationen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasPDSSpezifikationen> allMVModellvarianteHasPDSSpezifikationenInstances4 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasPDSSpezifikationen>(this, global::Tum.VModellXT.VModellvarianteHasPDSSpezifikationen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasPDSSpezifikationenInstances4.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasPDSSpezifikationen_PDSSpezifikationen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type PDSSpezifikationen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Ablaufbausteine
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasAblaufbausteine> allMVModellvarianteHasAblaufbausteineInstances5 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasAblaufbausteine>(this, global::Tum.VModellXT.VModellvarianteHasAblaufbausteine.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasAblaufbausteineInstances5.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasAblaufbausteine_Ablaufbausteine, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Ablaufbausteine is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Ablaufbausteinspezifikationen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasAblaufbausteinspezifikationen> allMVModellvarianteHasAblaufbausteinspezifikationenInstances6 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasAblaufbausteinspezifikationen>(this, global::Tum.VModellXT.VModellvarianteHasAblaufbausteinspezifikationen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasAblaufbausteinspezifikationenInstances6.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasAblaufbausteinspezifikationen_Ablaufbausteinspezifikationen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Ablaufbausteinspezifikationen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Projekttypen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasProjekttypen> allMVModellvarianteHasProjekttypenInstances7 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasProjekttypen>(this, global::Tum.VModellXT.VModellvarianteHasProjekttypen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasProjekttypenInstances7.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasProjekttypen_Projekttypen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Projekttypen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Projekttypvarianten
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasProjekttypvarianten> allMVModellvarianteHasProjekttypvariantenInstances8 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasProjekttypvarianten>(this, global::Tum.VModellXT.VModellvarianteHasProjekttypvarianten.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasProjekttypvariantenInstances8.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasProjekttypvarianten_Projekttypvarianten, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Projekttypvarianten is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Vortailoring
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasVortailoring> allMVModellvarianteHasVortailoringInstances9 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasVortailoring>(this, global::Tum.VModellXT.VModellvarianteHasVortailoring.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasVortailoringInstances9.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasVortailoring_Vortailoring, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Vortailoring is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Entscheidungspunkte
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasEntscheidungspunkte> allMVModellvarianteHasEntscheidungspunkteInstances10 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasEntscheidungspunkte>(this, global::Tum.VModellXT.VModellvarianteHasEntscheidungspunkte.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasEntscheidungspunkteInstances10.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasEntscheidungspunkte_Entscheidungspunkte, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Entscheidungspunkte is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Projektmerkmale
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasProjektmerkmale> allMVModellvarianteHasProjektmerkmaleInstances11 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasProjektmerkmale>(this, global::Tum.VModellXT.VModellvarianteHasProjektmerkmale.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasProjektmerkmaleInstances11.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasProjektmerkmale_Projektmerkmale, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Projektmerkmale is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Konventionsabbildungen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasKonventionsabbildungen> allMVModellvarianteHasKonventionsabbildungenInstances12 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasKonventionsabbildungen>(this, global::Tum.VModellXT.VModellvarianteHasKonventionsabbildungen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasKonventionsabbildungenInstances12.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasKonventionsabbildungen_Konventionsabbildungen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Konventionsabbildungen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Methodenreferenzen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasMethodenreferenzen> allMVModellvarianteHasMethodenreferenzenInstances13 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasMethodenreferenzen>(this, global::Tum.VModellXT.VModellvarianteHasMethodenreferenzen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasMethodenreferenzenInstances13.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasMethodenreferenzen_Methodenreferenzen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Methodenreferenzen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Werkzeugreferenzen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasWerkzeugreferenzen> allMVModellvarianteHasWerkzeugreferenzenInstances14 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasWerkzeugreferenzen>(this, global::Tum.VModellXT.VModellvarianteHasWerkzeugreferenzen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasWerkzeugreferenzenInstances14.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasWerkzeugreferenzen_Werkzeugreferenzen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Werkzeugreferenzen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Glossar
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasGlossar> allMVModellvarianteHasGlossarInstances15 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasGlossar>(this, global::Tum.VModellXT.VModellvarianteHasGlossar.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasGlossarInstances15.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasGlossar_Glossar, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Glossar is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Abkuerzungen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasAbkuerzungen> allMVModellvarianteHasAbkuerzungenInstances16 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasAbkuerzungen>(this, global::Tum.VModellXT.VModellvarianteHasAbkuerzungen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasAbkuerzungenInstances16.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasAbkuerzungen_Abkuerzungen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Abkuerzungen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Quellen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasQuellen> allMVModellvarianteHasQuellenInstances17 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasQuellen>(this, global::Tum.VModellXT.VModellvarianteHasQuellen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasQuellenInstances17.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasQuellen_Quellen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Quellen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Aenderungsoperationen
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasAenderungsoperationen> allMVModellvarianteHasAenderungsoperationenInstances18 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasAenderungsoperationen>(this, global::Tum.VModellXT.VModellvarianteHasAenderungsoperationen.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasAenderungsoperationenInstances18.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasAenderungsoperationen_Aenderungsoperationen, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type Aenderungsoperationen is missing, although it is required.", this));
			}

			// validate embedding relationship from VModellvariante to Referenzmodell
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VModellvarianteHasReferenzmodell> allMVModellvarianteHasReferenzmodellInstances19 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VModellvarianteHasReferenzmodell>(this, global::Tum.VModellXT.VModellvarianteHasReferenzmodell.VModellvarianteDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMVModellvarianteHasReferenzmodellInstances19.Count > 1 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VModellvarianteHasReferenzmodell_Referenzmodell, DslEditorModeling::ModelValidationViolationType.Error, "Multiple Embedded elements of type Referenzmodell found, although only one is allowed.", this));
			}
		}
		public virtual void ValidateReferenzmodell(DslEditorModeling::ModelValidationContext context)
		{

			// validate embedding relationship from Referenzmodell to VModell
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.ReferenzmodellHasVModell> allMReferenzmodellHasVModellInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.ReferenzmodellHasVModell>(this, global::Tum.VModellXT.ReferenzmodellHasVModell.ReferenzmodellDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMReferenzmodellHasVModellInstances0.Count > 1 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.ReferenzmodellHasVModell_VModell, DslEditorModeling::ModelValidationViolationType.Error, "Multiple Embedded elements of type VModell found, although only one is allowed.", this));
			}

			// validate reference relationship from Referenzmodell to VModellvariante (Side: Referenzmodell)
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.ReferenzmodellReferencesVModellvariante> allMReferenzmodellReferencesVModellvarianteInstances1 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.ReferenzmodellReferencesVModellvariante>(this, global::Tum.VModellXT.ReferenzmodellReferencesVModellvariante.ReferenzmodellDomainRoleId);
			// validate reference relationships --> see if cardinality constraints are met
			if( allMReferenzmodellReferencesVModellvarianteInstances1.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.ReferenzmodellReferencesVModellvariante_VModellvariante, DslEditorModeling::ModelValidationViolationType.Error, "Reference to element of type V-Modellvariante is missing, although it is required. Role name: + VModellvarianteRef", this));
			}
		}
		public virtual void ValidateTransition(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Condition
			if( System.String.IsNullOrEmpty(this.Condition) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.StateMachineDSL.StateMachineLanguageValidationMessageIds.Transition_Condition, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Condition' has no value although it is required", this));
			}
		}
		public virtual void ValidateStateMachineDomainModel(DslEditorModeling::ModelValidationContext context)
		{

			// validate embedding relationship from StateMachineDomainModel to StartState
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.StateMachineDSL.StateMachineDomainModelHasStartState> allMStateMachineDomainModelHasStartStateInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.StateMachineDSL.StateMachineDomainModelHasStartState>(this, global::Tum.StateMachineDSL.StateMachineDomainModelHasStartState.StateMachineDomainModelDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMStateMachineDomainModelHasStartStateInstances0.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.StateMachineDSL.StateMachineLanguageValidationMessageIds.StateMachineDomainModelHasStartState_StartState, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type StartState is missing, although it is required.", this));
			}

			// validate embedding relationship from StateMachineDomainModel to EndState
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.StateMachineDSL.StateMachineDomainModelHasEndState> allMStateMachineDomainModelHasEndStateInstances1 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.StateMachineDSL.StateMachineDomainModelHasEndState>(this, global::Tum.StateMachineDSL.StateMachineDomainModelHasEndState.StateMachineDomainModelDomainRoleId);
			// validate embedding relationships --> see if cardinality constraints are met
			if( allMStateMachineDomainModelHasEndStateInstances1.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.StateMachineDSL.StateMachineLanguageValidationMessageIds.StateMachineDomainModelHasEndState_EndState, DslEditorModeling::ModelValidationViolationType.Error, "Embedded element of type EndState is missing, although it is required.", this));
			}
		}
		public virtual void ValidateTest(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Name
			if( System.String.IsNullOrEmpty(this.Name) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.TestLanguage.TestLanguageValidationMessageIds.Test_Name, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Name' has no value although it is required", this));
			}
			// validate required attribute Number
			if( this.Number == null )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.TestLanguage.TestLanguageValidationMessageIds.Test_Number, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Number' has no value although it is required", this));
			}
		}
		public virtual void ValidateDRType(DslEditorModeling::ModelValidationContext context)
		{

			// validate reference relationship from DRTypeS to DETypeSource (Side: DRTypeS)
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.DRTypeReferencesDETypeSource> allMDRTypeReferencesDETypeSourceInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.DRTypeReferencesDETypeSource>(this, global::Tum.PDE.ModelingDSL.DRTypeReferencesDETypeSource.DRTypeSDomainRoleId);
			// validate reference relationships --> see if cardinality constraints are met
			if( allMDRTypeReferencesDETypeSourceInstances0.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DRTypeReferencesDETypeSource_DETypeSource, DslEditorModeling::ModelValidationViolationType.Error, "Reference to element of type DEType is missing, although it is required. Role name: + Source", this));
			}

			// validate reference relationship from DRTypeT to DETypeTarget (Side: DRTypeT)
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.PDE.ModelingDSL.DRTypeReferencesDETypeTarget> allMDRTypeReferencesDETypeTargetInstances1 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.PDE.ModelingDSL.DRTypeReferencesDETypeTarget>(this, global::Tum.PDE.ModelingDSL.DRTypeReferencesDETypeTarget.DRTypeTDomainRoleId);
			// validate reference relationships --> see if cardinality constraints are met
			if( allMDRTypeReferencesDETypeTargetInstances1.Count == 0 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.DRTypeReferencesDETypeTarget_DETypeTarget, DslEditorModeling::ModelValidationViolationType.Error, "Reference to element of type DEType is missing, although it is required. Role name: + Target", this));
			}
		}
		public virtual void ValidateZusatzthema(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Name
			if( System.String.IsNullOrEmpty(this.Name) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.Zusatzthema_Name, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Name' has no value although it is required", this));
			}
			// validate required attribute Standardauswahl
			if( this.Standardauswahl == null )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.Zusatzthema_Standardauswahl, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Standardauswahl' has no value although it is required", this));
			}
		}
		public virtual void ValidateConversionModelInfo(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute HasModelChanged
			if( this.HasModelChanged == null )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.ModelingDSL.PDEModelingDSLValidationMessageIds.ConversionModelInfo_HasModelChanged, DslEditorModeling::ModelValidationViolationType.Error, "Property 'HasModelChanged' has no value although it is required", this));
			}
		}
		public virtual void ValidateVariante(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Name
			if( System.String.IsNullOrEmpty(this.Name) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.Variante_Name, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Name' has no value although it is required", this));
			}
			// validate required attribute Verzeichnis
			if( System.String.IsNullOrEmpty(this.Verzeichnis) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.Variante_Verzeichnis, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Verzeichnis' has no value although it is required", this));
			}
			// validate required attribute Dateiname
			if( System.String.IsNullOrEmpty(this.Dateiname) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.Variante_Dateiname, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Dateiname' has no value although it is required", this));
			}

			// validate reference relationship from VarianteSource to VarianteTarget (Side: VarianteSource)
			System.Collections.ObjectModel.ReadOnlyCollection<global::Tum.VModellXT.VarianteSourceReferencesVarianteTarget> allMVarianteSourceReferencesVarianteTargetInstances0 =  DslModeling::DomainRoleInfo.GetElementLinks<global::Tum.VModellXT.VarianteSourceReferencesVarianteTarget>(this, global::Tum.VModellXT.VarianteSourceReferencesVarianteTarget.VarianteSourceDomainRoleId);
			// validate reference relationships --> see if cardinality constraints are met
			if( allMVarianteSourceReferencesVarianteTargetInstances0.Count > 1 )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.VModellXT.VModellXTValidationMessageIds.VarianteSourceReferencesVarianteTarget_VarianteTarget, DslEditorModeling::ModelValidationViolationType.Error, "There are multiple references to elements of type Variante, although only one is allowed. Role name: + Referenzvariante", this));
			}
		}
		public virtual void ValidateDomainClass2(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Name
			if( System.String.IsNullOrEmpty(this.Name) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.PDE.VSPluginDSL.VSPluginDSLValidationMessageIds.DomainClass2_Name, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Name' has no value although it is required", this));
			}
		}
		public virtual void ValidatePerson(DslEditorModeling::ModelValidationContext context)
		{
			// validate required attribute Name
			if( System.String.IsNullOrEmpty(this.Name) )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.FamilyTreeDSL.FamilyTreeDSLValidationMessageIds.Person_Name, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Name' has no value although it is required", this));
			}
			// validate required attribute Gender
			if( this.Gender == null )
			{
				context.AddMessage(new DslEditorModeling::ModelValidationMessage(Tum.FamilyTreeDSL.FamilyTreeDSLValidationMessageIds.Person_Gender, DslEditorModeling::ModelValidationViolationType.Error, "Property 'Gender' has no value although it is required", this));
			}
		}