public bool Save(XmlNode output) { if (output == null) { throw new ArgumentNullException(nameof(output)); } int idNum = 0; bool allOk = true; XmlNode xILPTableNode = output.InsertCompressedElement(SST.ILPTable); XmlNode xPatchActionTable = xILPTableNode.InsertCompressedElement(SST.PatchActionTable); foreach (PatchAction pa in PatchActionList) { allOk &= Save(xPatchActionTable, pa, (idNum++).ToBaseAlph()); } XmlNode xTargetFinderTable = xILPTableNode.InsertCompressedElement(SST.TargetFinderTable); foreach (TargetFinder tf in TargetFinderList) { allOk &= Save(xTargetFinderTable, tf, (idNum++).ToBaseAlph()); } XmlNode xPatchEntryTable = xILPTableNode.InsertCompressedElement(SST.PatchEntryTable); foreach (PatchEntry pe in PatchEntryList) { allOk &= Save(xPatchEntryTable, pe); } XmlNode xReferenceTable = xILPTableNode.InsertCompressedElement(SST.ReferenceTable); allOk &= ReferenceTable.Save(xReferenceTable); return(allOk); }