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;
        }