private static List <WixTableDefinition> ReadXmlWriteCs(string inputPath, string outputPath, string prefix) { var tableDefinitions = WixTableDefinition.LoadCollection(inputPath); var text = GenerateCsTableDefinitionsFileText(prefix, tableDefinitions); Console.WriteLine("Writing: {0}", outputPath); File.WriteAllText(outputPath, text); return(tableDefinitions); }
public static List <WixTableDefinition> LoadCollection(string inputPath) { using (var reader = XmlReader.Create(inputPath)) { reader.MoveToContent(); if ("tableDefinitions" != reader.LocalName) { throw new XmlException(); } var empty = reader.IsEmptyElement; var tableDefinitions = new List <WixTableDefinition>(); while (reader.MoveToNextAttribute()) { } // parse the child elements if (!empty) { var done = false; while (!done && reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: switch (reader.LocalName) { case "tableDefinition": tableDefinitions.Add(WixTableDefinition.Read(reader)); break; default: throw new XmlException(); } break; case XmlNodeType.EndElement: done = true; break; } } if (!done) { throw new XmlException(); } } return(tableDefinitions); } }