well, you are doing this wrong - you should probably use XML serialization - see this page for example: http://msdn.microsoft.com/en-us/library/182eeyhh.aspx
BUT in your code the error is that you create EMPTY array here:
public amzReport[] Report;
and you never "expand" it. I would suggest you change that line to
public List<amzReport> Report;
and then change your main foreach loop like this:
foreach (ReportInfo reportInfo in reportInfoList)
{
amzReport rpt = new amzReport();
index++;
HttpContext.Current.Response.Write("ReportInfo");
if (reportInfo.IsSetReportId())
{
HttpContext.Current.Response.Write("ReportId");
HttpContext.Current.Response.Write("" + reportInfo.ReportId);
rpt.ReportID = reportInfo.ReportId;
}
// all other code goes here...
reportXML.Report.Add(rpt);
}