public void Parse(string input, string[] args = null) { var xxr = new XamlXmlReader(new StringReader(input), new XamlSchemaContext()); var graphReader = new XamlObjectWriter(xxr.SchemaContext); while (xxr.Read()) graphReader.WriteNode(xxr); var page = (Page)graphReader.Result; // Map our generators var g = new Generator(); g.Map<Page, PageGeneratorBlock>(); g.Map<Button, ButtonGeneratorBlock>(); g.Map<StackPanel, StackPanelGeneratorBlock>(); var doc = new HtmlDocument(); var html = doc.CreateElement("html"); g.Generate(html, page); // HTML5 Doc type doc.DocumentNode.AppendChild(doc.CreateComment("<!DOCTYPE html>")); doc.DocumentNode.AppendChild(html); doc.Save("test.htm"); var cssContents = g.GenerateStyles(page); File.WriteAllText("XamlCore.css", cssContents); }