/// <summary> /// Get Derivation enumeration . /// </summary> public static StructureDefinition.TypeDerivationRule GetDerivation(this ElementDefinition elementDefinition) { Extension ns = elementDefinition.GetExtension(DerivationExtensionUri); if (ns == null) { throw new Exception("Missing Derivation extension element"); } Code value = (Code)ns.Value; switch (value.Value) { case "specialization": return(StructureDefinition.TypeDerivationRule.Specialization); case "constraint": return(StructureDefinition.TypeDerivationRule.Constraint); default: throw new Exception($"Unexpected value in Derivation code {value.Value}"); } }