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()
var sb = new StringBuilder();
using (var textWriter = new StringWriter(sb))
var ITRETURN = @"http://incometaxindiaefiling.gov.in/main";
var ITR1FORM = @"http://incometaxindiaefiling.gov.in/ITR1";
var ITRForm = @"http://incometaxindiaefiling.gov.in/master";
var xsi = @"http://www.w3.org/2001/XMLSchema-instance";
var settings = new XmlWriterSettings
OmitXmlDeclaration = true,
using (var xmlWriter = XmlWriter.Create(textWriter, settings))
xmlWriter.WriteStartElement("ITRETURN", "ITR", ITRETURN);
xmlWriter.WriteAttributeString("xmlns","ITRETURN", null, ITRETURN);
xmlWriter.WriteAttributeString("xmlns","ITR1FORM", null, ITR1FORM);
xmlWriter.WriteAttributeString("xmlns","ITRForm", null, ITRForm);
xmlWriter.WriteAttributeString("xmlns","xsi", null, xsi);
xmlWriter.WriteStartElement("ITR1", ITR1FORM);
xmlWriter.WriteStartElement("CreationInfo", ITRForm);
xmlWriter.WriteElementString("SWVersionNo", ITRForm, "R1");
xmlWriter.WriteElementString("SWCreatedBy", ITRForm, "SW92201920");
xmlWriter.WriteElementString("XMLCreatedBy", ITRForm, "SW92201920");
xmlWriter.WriteElementString("XMLCreationDate", ITRForm, "2019-07-19");
xmlWriter.WriteElementString("IntermediaryCity", ITRForm, "Delhi");
xmlWriter.WriteElementString("Digest", ITRForm, "lOa90+jndV+RYN0ghOemod4eomQDqsSm6tw3w8XWsZQ= ");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
Assert.IsTrue(XElement.DeepEquals(XElement.Parse(xml), XElement.Parse(GetRequiredXml())));
static string GetRequiredXml()
var xml = @"<ITRETURN:ITR xmlns:ITRETURN=""http://incometaxindiaefiling.gov.in/main"" xmlns:ITR1FORM=""http://incometaxindiaefiling.gov.in/ITR1"" xmlns:ITRForm=""http://incometaxindiaefiling.gov.in/master"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">
<ITRForm:SWVersionNo>R1</ITRForm:SWVersionNo>
<ITRForm:SWCreatedBy>SW92201920</ITRForm:SWCreatedBy>
<ITRForm:XMLCreatedBy>SW92201920</ITRForm:XMLCreatedBy>
<ITRForm:XMLCreationDate>2019-07-19</ITRForm:XMLCreationDate>
<ITRForm:IntermediaryCity>Delhi</ITRForm:IntermediaryCity>
<ITRForm:Digest>lOa90+jndV+RYN0ghOemod4eomQDqsSm6tw3w8XWsZQ= </ITRForm:Digest>
static class StringExtensions
public static int IndexOfFirstDifference(this string a, string b)
int max = Math.Min(a.Length, b.Length);
while (index < max && a[index] == b[index])
if (index >= a.Length || index >= b.Length)
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: ");