using System.Collections.Generic;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO.Compression;
public static void Test()
XDocument xDoc1 = XDocument.Parse(GetXml1());
XDocument xDoc2 = XDocument.Parse(GetXml2());
var currentTimeNode = xDoc2.Descendants("Time").First();
xDoc1.Add(new XElement("CurrentStatus"));
xDoc1.Root.AddFirst(currentTimeNode);
Console.WriteLine(xDoc1);
XmlAssert.AreEqual(xDoc1.Root, XElement.Parse(GetRequiredXml()));
Console.WriteLine("\nXML modified as required.");
var xml = @"<CurrentStatus>
var xml = @"<CurrentStatus>
static string GetRequiredXml()
var xml = @"<CurrentStatus>
public static class XmlAssert
public static void AreEqual(
Assert.IsTrue(XNode.DeepEquals(Normalize(expected), Normalize(actual)));
private static XElement Normalize(XElement element)
.OrderBy(a => a.Name.ToString()),
.OrderBy(a => a.Name.ToString())
.Select(e => Normalize(e)));
.OrderBy(a => a.Name.ToString()));
return new XElement(element.Name, element.Attributes()
.OrderBy(a => a.Name.ToString()), element.Value);
public static void Main()
Console.WriteLine("Roslyn 2.0 Compiler; Environment version: " + Environment.Version);
Console.WriteLine("Uncaught exception: ");