public static DrawingLayer DrawingLayerFromXml(XElement layerElement) { var name = layerElement.Attribute("name").Value; var layer = new DrawingLayer(name); XmlRepository.BaseFromXml(layer, layerElement); foreach (var element in layerElement.Element("Elements").Elements()) { switch (element.Name.ToString()) { case "TextElement": layer.AddElement(TextElementFromXml(element)); break; case "LineElement": layer.AddElement(LineElementFromXml(element)); break; case "PolygonElement": layer.AddElement(PolygonElementFromXml(element)); break; default: throw new NotImplementedException(element.Name + " is not implemented yet."); } } return layer; }