private static void DeserializeQuestion(XElement questionElement, Slide slide) { var type = questionElement.Name.LocalName; var question = new Question(type); question.Version = questionElement.Attribute("Version").Value; question.Input = questionElement.Element("Inputs").Elements(); question.Output = new Output(); var validationElement = questionElement.Element("Outputs").Element("Validation"); if (validationElement != null) { question.Validation.MultiValueValidator = FindMultiValueValidators(validationElement).ToList(); question.Validation.SimpleValueValidator = FindSimpleValueValidator(validationElement).ToList(); question.Validation.ComplexValueValidator = FindComplexValueValidators(validationElement).ToList(); var value = questionElement.Element("Outputs").Element("Value"); if (value != null) { var valueElements = value.Elements(); foreach (var valueElement in valueElements) { DeserializeOutput(valueElement, question.Output); } } } slide.AddQuestion(question); }