StringWriter InternalMergeFormChanges()
		{
			var writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8);
			var xml = XmlHelper.CreatePropperWriter(writer);
		
			var reportDesignerWriter = new ReportDesignerWriter();
			XmlHelper.CreatePropperDocument(xml);
			
			foreach (IComponent component in viewContent.Host.Container.Components) {
				if (!(component is Control)) {
					reportDesignerWriter.Save(component,xml);
				}
			}
			xml.WriteEndElement();
			xml.WriteStartElement("SectionCollection");
			
			// we look only for Sections
			foreach (var component in viewContent.Host.Container.Components) {
				var b = component as BaseSection;
				if (b != null) {
					reportDesignerWriter.Save(component,xml);
				}
			}
			//SectionCollection
			xml.WriteEndElement();
			//Reportmodel
			xml.WriteEndElement();
			xml.WriteEndDocument();
			xml.Close();
			return writer;
		}
		static StringWriter ToXmlInternal(IReportModel model)
		{
			var writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8);
			var xml = XmlHelper.CreatePropperWriter(writer);
		
			var reportDesignerWriter = new ReportDesignerWriter();
			XmlHelper.CreatePropperDocument(xml);
			
			
			reportDesignerWriter.Save(model.ReportSettings,xml);
			
			xml.WriteEndElement();
			xml.WriteStartElement("SectionCollection");
			
			// we look only for Sections
			foreach (var section in model.SectionCollection) {
					reportDesignerWriter.Save(section,xml);
			}
			
			//SectionCollection
			xml.WriteEndElement();
			//Reportmodel
			xml.WriteEndElement();
			xml.WriteEndDocument();
			xml.Close();
			return writer;
		}