public static OutlineDocument Load(string fileName) { var xmlDocument = XDocument.Load(fileName); var thisOutlineDocument = OutlineDocument.CreateFromXmlDocument(xmlDocument); thisOutlineDocument.FileName = fileName; thisOutlineDocument.State = OutlineDocumentState.LoadedDocument; return(thisOutlineDocument); }
public static OutlineDocument CreateFromXmlElement(XElement xmlElement) { if (xmlElement == null) { throw new ArgumentNullException(nameof(xmlElement)); } if (xmlElement.Name != "SimpleOutlineDocument") { throw new DecodingException(); } if (xmlElement.Attributes().Count() > 0) { throw new DecodingException(); } if (xmlElement.Elements().SingleOrDefault(e => e.Name != "Outline") != null) { throw new DecodingException(); } if (xmlElement.Elements().SingleOrDefault(e => e.Name == "Outline") == null) { throw new DecodingException(); } var xmlOutlineElement = xmlElement.Element("Outline"); if (xmlOutlineElement.Attributes().Count() > 0) { throw new DecodingException(); } if (xmlOutlineElement.Elements("Item").Count() != 1) { throw new DecodingException(); } var thisOutlineDocument = new OutlineDocument(); var rootItemXmlElement = xmlOutlineElement.Element("Item"); var rootOutlineItem = OutlineItem.CreateFromXmlElement(rootItemXmlElement); thisOutlineDocument.Items[0] = rootOutlineItem; return(thisOutlineDocument); }