示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }