class Program { static void Main(string[] args) { var xml = GetXmlData(); WriteToFiles(xml, "xml"); var xsd = GetXsdData(); WriteToFiles(xsd, "xsd"); } class XmlFromDatabase { public string Data, Filename; } private static void WriteToFiles(XmlFromDatabase[] rows, string extension) { int i = 0; foreach (var row in rows) { if (i++ % 25 == 0) Console.Write("."); WriteFile(extension, row); } Console.WriteLine(); } private static void WriteFile(string extension, XmlFromDatabase row) { var path = $@"c:\temp\goo\{row.Filename}.{extension}"; if (File.Exists(path)) File.Delete(path); var document = new XmlDocument(); document.LoadXml(row.Data); using (XmlTextWriter w = new XmlTextWriter(path, Encoding.UTF8)) { w.Formatting = Formatting.Indented; document.WriteContentTo(w); } } private static XmlFromDatabase[] GetXmlData() { using (var conn = new SqlConnection("Data Source=localhost;Initial Catalog=Staging;Integrated Security=True")) { var r = conn.Query(@" select XMLDATA as Data, SCHEMADATAID as Filename from [Bar] where SCHEMANAME = 'F15'"); return r.ToArray(); } } private static XmlFromDatabase[] GetXsdData() { using (var conn = new SqlConnection("Data Source=localhost;Initial Catalog=Staging;Integrated Security=True")) { var r = conn.Query(@" SELECT SchemaXsd as Data, SchemaFileName as Filename FROM [Foo] where SCHEMANAME = 'F15'"); return r.ToArray(); } } }