// ------------------------------------------------------------------------------
// 
//     This code was generated by a tool.
//     Runtime Version: 17.0.0.0
//  
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// 
// ------------------------------------------------------------------------------
namespace ServiceClientGenerator.Generators.Marshallers
{
    using System.Linq;
    using System.Text;
    using System.Collections.Generic;
    using System;
    
    /// 
    /// Class to produce the template output
    /// 
    
    #line 1 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
    public partial class RestXmlRequestMarshaller : BaseRequestMarshaller
    {
#line hidden
        /// 
        /// Create the template output
        /// 
        public override string TransformText()
        {
            
            #line 6 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
	AddLicenseHeader();
	
	AddCommonUsingStatements();
            
            #line default
            #line hidden
            this.Write("using System.Xml;\r\n\r\nnamespace ");
            
            #line 13 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace));
            
            #line default
            #line hidden
            this.Write(".Model.Internal.MarshallTransformations\r\n{\r\n\t/// \r\n\t/// ");
            
            #line 16 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name));
            
            #line default
            #line hidden
            this.Write(" Request Marshaller\r\n\t///        \r\n\tpublic class ");
            
            #line 18 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name));
            
            #line default
            #line hidden
            this.Write("RequestMarshaller : IMarshaller , IMarshaller
	{
        /// 
        /// Marshaller the request object to the HTTP request.
        ///   
        /// 
        /// 
		public IRequest Marshall(AmazonWebServiceRequest input)
        {
            return this.Marshall((");
            
            #line 27 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name));
            
            #line default
            #line hidden
            this.Write("Request)input);\r\n        }\r\n\r\n        /// \r\n        /// Marshaller the r" +
                    "equest object to the HTTP request.\r\n        ///   \r\n        /// \r\n        /// \r\n\t\tpublic IReque" +
                    "st Marshall(");
            
            #line 35 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name));
            
            #line default
            #line hidden
            this.Write("Request publicRequest)\r\n\t\t{\r\n\t\t\tvar request = new DefaultRequest(publicRequest, \"" +
                    "");
            
            #line 37 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace));
            
            #line default
            #line hidden
            this.Write("\");\r\n");
            
            #line 38 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
	// Assign HttpMethod if present or default to POST
	if(!string.IsNullOrWhiteSpace(this.Operation.HttpMethod)){		
            
            #line default
            #line hidden
            this.Write("\t\t\trequest.HttpMethod = \"");
            
            #line 42 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.HttpMethod));
            
            #line default
            #line hidden
            this.Write("\";\r\n");
            
            #line 43 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
	}
	var requestStructure = this.Operation.RequestStructure;
    var payload = this.Operation.RequestPayloadMember;
    var shouldMarshallPayload = (payload != null && payload.IsStructure);
    // This block adds members of the request object to the actual request
	ProcessRequestUri(this.Operation);	
	ProcessHeaderMembers("publicRequest", this.Operation.RequestHeaderMembers);		
	ProcessUriMembers("publicRequest", this.Operation);	
	ProcessQueryStringMembers("publicRequest", this.Operation);
            
            #line default
            #line hidden
            this.Write("\t\t\trequest.ResourcePath = \"");
            
            #line 55 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.RequestUri));
            
            #line default
            #line hidden
            this.Write("\";\r\n\r\n");
            
            #line 57 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
   
	// Process any members which are marshalled as part of the request body
	if(this.Operation.RequestHasBodyMembers || shouldMarshallPayload)
	{
		ProcessRequestBodyMembers("publicRequest", this.Operation);		
	}
            
            #line default
            #line hidden
            this.Write("\r\n");
            
            #line 65 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
	// If there aren't any members that are marshalled as part of the body or streamed	
	if(this.Operation.UseQueryString)
	{
            
            #line default
            #line hidden
            this.Write("\t\t\trequest.UseQueryString = true;\r\n");
            
            #line 71 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
	}	
	// We skip endpoint host prefix handling for S3 and S3 Control as it's implemented by endpoint rules.
	if(!string.IsNullOrEmpty(this.Operation.EndpointHostPrefix) && this.Config.ServiceId != "S3" && this.Config.ServiceId != "S3 Control")
	{
		ProcessEndpointHostPrefixMembers("publicRequest", this.Operation);
	}
            
            #line default
            #line hidden
            this.Write("\t\t\treturn request;\r\n\t\t}\r\n");
            
            #line 81 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
				
	this.AddRequestSingletonMethod();
            
            #line default
            #line hidden
            this.Write("\t}\t\r\n}\r\n\r\n");
            return this.GenerationEnvironment.ToString();
        }
        
        #line 87 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
	void ProcessRequestBodyMembers(string variableName, Operation operation)
	{
		var level = 0;
        
        #line default
        #line hidden
        
        #line 92 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(@"			var stringWriter = new XMLEncodedStringWriter(CultureInfo.InvariantCulture);
			using (var xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings() { Encoding = System.Text.Encoding.UTF8, OmitXmlDeclaration = true, NewLineHandling = NewLineHandling.Entitize }))
			{   
");
        
        #line default
        #line hidden
        
        #line 96 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
		if(operation.RequestPayloadMember==null)
		{
        
        #line default
        #line hidden
        
        #line 99 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\txmlWriter.WriteStartElement(\"");
        
        #line default
        #line hidden
        
        #line 100 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Input.LocationName));
        
        #line default
        #line hidden
        
        #line 100 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 100 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.XmlNamespace));
        
        #line default
        #line hidden
        
        #line 100 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\");\t\r\n");
        
        #line default
        #line hidden
        
        #line 101 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
		}
		else
		{
        
        #line default
        #line hidden
        
        #line 105 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\tif (");
        
        #line default
        #line hidden
        
        #line 106 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(variableName + ".IsSet" + operation.RequestPayloadMember.PropertyName));
        
        #line default
        #line hidden
        
        #line 106 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("())\r\n\t\t\t\t{\r\n\t\t\t\t\txmlWriter.WriteStartElement(\"");
        
        #line default
        #line hidden
        
        #line 108 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.RequestPayloadMember.MarshallName));
        
        #line default
        #line hidden
        
        #line 108 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 108 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.XmlNamespace));
        
        #line default
        #line hidden
        
        #line 108 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\");\r\n");
        
        #line default
        #line hidden
        
        #line 109 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
			level++;
		}
		var childmembers = operation.RequestPayloadMember == null ? operation.RequestBodyMembers : operation.RequestPayloadMember.Shape.Members;
		variableName = operation.RequestPayloadMember == null ? variableName : variableName + "." + operation.RequestPayloadMember.PropertyName;
		foreach(var member in childmembers)
		{			
			if(member.IsStructure)
			{
				ProcessStructure(level, variableName, member, operation.XmlNamespace);				
			}
			else if(member.IsList)
			{
				ProcessList(level, variableName, member, operation.XmlNamespace);
			}
			else if(member.IsMap)
			{				
				ProcessMap(level, variableName, member, operation.XmlNamespace);
			}
			else
			{
        
        #line default
        #line hidden
        
        #line 131 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 131 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\tif(");
        
        #line default
        #line hidden
        
        #line 131 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(variableName));
        
        #line default
        #line hidden
        
        #line 131 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(".IsSet");
        
        #line default
        #line hidden
        
        #line 131 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PropertyName));
        
        #line default
        #line hidden
        
        #line 131 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("())\r\n");
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteElementString(\"");
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.MarshallName));
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.XmlNamespace));
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", ");
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PrimitiveMarshaller));
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("(");
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(variableName));
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(".");
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PropertyName));
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture((member.UseNullable ? ".Value" : string.Empty)));
        
        #line default
        #line hidden
        
        #line 132 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("));\t\t\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 133 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
				if(member.IsIdempotent)
				{
        
        #line default
        #line hidden
        
        #line 136 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\telse\t\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 138 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 138 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteElementString(\"");
        
        #line default
        #line hidden
        
        #line 138 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.MarshallName));
        
        #line default
        #line hidden
        
        #line 138 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 138 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(operation.XmlNamespace));
        
        #line default
        #line hidden
        
        #line 138 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", Guid.NewGuid().ToString());\t\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 139 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
					
				}
        
        #line default
        #line hidden
        
        #line 142 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(""));
        
        #line default
        #line hidden
        
        #line 142 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\r\n");
        
        #line default
        #line hidden
        
        #line 143 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
			}
			
		}  
        
        #line default
        #line hidden
        
        #line 147 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\r\n");
        
        #line default
        #line hidden
        
        #line 149 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 149 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\txmlWriter.WriteEndElement();\r\n");
        
        #line default
        #line hidden
        
        #line 150 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
		if(operation.RequestPayloadMember!=null)
		{
        
        #line default
        #line hidden
        
        #line 154 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 154 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t}\r\n");
        
        #line default
        #line hidden
        
        #line 155 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
			level--;
		}
        
        #line default
        #line hidden
        
        #line 158 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t}\r\n\t\t\ttry \r\n\t\t\t{\r\n\t\t\t\tstring content = stringWriter.ToString();\r\n\t\t\t\trequest.C" +
        "ontent = System.Text.Encoding.UTF8.GetBytes(content);\r\n\t\t\t\trequest.Headers[\"Cont" +
        "ent-Type\"] = \"application/xml\";\r\n");
        
        #line default
        #line hidden
        
        #line 165 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
					GenerateRequestChecksumHandling(operation, "content");
        
        #line default
        #line hidden
        
        #line 167 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t            request.Headers[Amazon.Util.HeaderKeys.XAmzApiVersion] = \"");
        
        #line default
        #line hidden
        
        #line 168 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ServiceModel.APIVersion));
        
        #line default
        #line hidden
        
        #line 168 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\";            \r\n\t\t\t} \r\n\t\t\tcatch (EncoderFallbackException e) \r\n\t\t\t{\r\n\t\t\t\tthrow ne" +
        "w AmazonServiceException(\"Unable to marshall request to XML\", e);\r\n\t\t\t}\r\n");
        
        #line default
        #line hidden
        
        #line 174 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
				       
	}
	void ProcessMembers(int level, string variableName, IEnumerable members, string xmlNamespace)
	{
		foreach(var member in members)
		{
			if(member.IsStructure)
			{
				ProcessStructure(level, variableName, member, xmlNamespace);				
			}
			else if(member.IsList)
			{
				ProcessList(level, variableName, member, xmlNamespace);	
			}
			else if(member.IsMap)
			{				
				ProcessMap(level, variableName, member, xmlNamespace);
			}
			else
			{
        
        #line default
        #line hidden
        
        #line 196 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 196 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\tif(");
        
        #line default
        #line hidden
        
        #line 196 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(variableName));
        
        #line default
        #line hidden
        
        #line 196 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(".IsSet");
        
        #line default
        #line hidden
        
        #line 196 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PropertyName));
        
        #line default
        #line hidden
        
        #line 196 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("())\r\n");
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteElementString(\"");
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.MarshallName));
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", ");
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PrimitiveMarshaller));
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("(");
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(variableName));
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(".");
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PropertyName));
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture((member.UseNullable ? ".Value" : string.Empty)));
        
        #line default
        #line hidden
        
        #line 197 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("));\t\t\t\t \r\n\r\n");
        
        #line default
        #line hidden
        
        #line 199 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
			}
		}
	}
	void ProcessStructure(int level, string variableName, Member member, string xmlNamespace)
	{
			var shape = member.Shape.IsList ?  member.Shape.ListShape : member.Shape ;
			variableName = member.Shape.IsList ? variableName : variableName + "." + member.PropertyName;
			// Use shape's ListMarshallName if the structure is a list.
			var marshallName = member.Shape.IsList ? member.Shape.ListMarshallName ?? "member" : member.MarshallName;
        
        #line default
        #line hidden
        
        #line 211 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 212 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 212 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\tif (");
        
        #line default
        #line hidden
        
        #line 212 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(variableName));
        
        #line default
        #line hidden
        
        #line 212 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(" != null) \r\n");
        
        #line default
        #line hidden
        
        #line 213 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 213 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t{\r\n");
        
        #line default
        #line hidden
        
        #line 214 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 214 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteStartElement(\"");
        
        #line default
        #line hidden
        
        #line 214 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(marshallName));
        
        #line default
        #line hidden
        
        #line 214 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 214 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 214 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\");\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 215 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
			
			ProcessMembers(level + 1, variableName, shape.Members, xmlNamespace);			
        
        #line default
        #line hidden
        
        #line 218 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 218 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteEndElement();\r\n");
        
        #line default
        #line hidden
        
        #line 219 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 219 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t}\r\n");
        
        #line default
        #line hidden
        
        #line 220 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
		
	}
	void ProcessList(int level, string variableName, Member member, string xmlNamespace)
	{
				var listVariable = (variableName + member.PropertyName).Replace(".",string.Empty);
				var listItemVariable = (variableName + member.PropertyName).Replace(".",string.Empty) + "Value";
        
        #line default
        #line hidden
        
        #line 228 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 228 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\tvar ");
        
        #line default
        #line hidden
        
        #line 228 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listVariable));
        
        #line default
        #line hidden
        
        #line 228 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(" = ");
        
        #line default
        #line hidden
        
        #line 228 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(variableName));
        
        #line default
        #line hidden
        
        #line 228 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(".");
        
        #line default
        #line hidden
        
        #line 228 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PropertyName));
        
        #line default
        #line hidden
        
        #line 228 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(";\r\n");
        
        #line default
        #line hidden
        
        #line 229 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 229 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\tif (");
        
        #line default
        #line hidden
        
        #line 229 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listVariable));
        
        #line default
        #line hidden
        
        #line 229 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(" != null && ");
        
        #line default
        #line hidden
        
        #line 229 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listVariable));
        
        #line default
        #line hidden
        
        #line 229 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(".Count > 0) \r\n");
        
        #line default
        #line hidden
        
        #line 230 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 230 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t{\t\t\t\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 231 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 231 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteStartElement(\"");
        
        #line default
        #line hidden
        
        #line 231 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.MarshallName));
        
        #line default
        #line hidden
        
        #line 231 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 231 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 231 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\");\r\n");
        
        #line default
        #line hidden
        
        #line 232 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 232 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\tforeach (var ");
        
        #line default
        #line hidden
        
        #line 232 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listItemVariable));
        
        #line default
        #line hidden
        
        #line 232 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(" in ");
        
        #line default
        #line hidden
        
        #line 232 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listVariable));
        
        #line default
        #line hidden
        
        #line 232 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(") \r\n");
        
        #line default
        #line hidden
        
        #line 233 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 233 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t{\r\n");
        
        #line default
        #line hidden
        
        #line 234 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
			
			if(member.Shape.ListShape.IsStructure)
			{
					ProcessStructure(level + 1, listItemVariable, member, xmlNamespace);	
			}
			else
			{
				var listMarshallName = member.Shape.ListMarshallName ?? "member";
				if(member.Shape.ListShape.IsDateTime)
				{
					// Use shape's ListMarshallName as it's a list structure.
        
        #line default
        #line hidden
        
        #line 246 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 246 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteStartElement(\"");
        
        #line default
        #line hidden
        
        #line 246 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listMarshallName));
        
        #line default
        #line hidden
        
        #line 246 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 246 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 246 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\");\r\n");
        
        #line default
        #line hidden
        
        #line 247 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 247 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteValue(");
        
        #line default
        #line hidden
        
        #line 247 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.Shape.ListShape.PrimitiveMarshaller(MarshallLocation.Body)));
        
        #line default
        #line hidden
        
        #line 247 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("(");
        
        #line default
        #line hidden
        
        #line 247 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listItemVariable));
        
        #line default
        #line hidden
        
        #line 247 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("));\r\n");
        
        #line default
        #line hidden
        
        #line 248 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 248 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteEndElement();\r\n");
        
        #line default
        #line hidden
        
        #line 249 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
				
				}
				else
				{
					// Use shape's ListMarshallName as it's a list structure.
        
        #line default
        #line hidden
        
        #line 256 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 256 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteStartElement(\"");
        
        #line default
        #line hidden
        
        #line 256 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listMarshallName));
        
        #line default
        #line hidden
        
        #line 256 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 256 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 256 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\");\r\n");
        
        #line default
        #line hidden
        
        #line 257 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 257 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteValue(");
        
        #line default
        #line hidden
        
        #line 257 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(listItemVariable));
        
        #line default
        #line hidden
        
        #line 257 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(");\r\n");
        
        #line default
        #line hidden
        
        #line 258 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 258 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteEndElement();\r\n");
        
        #line default
        #line hidden
        
        #line 259 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
				
				}
			}			
        
        #line default
        #line hidden
        
        #line 263 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 263 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t}\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 264 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 264 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteEndElement();\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 265 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 265 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t}\r\n");
        
        #line default
        #line hidden
        
        #line 266 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
				
	}
	void ProcessMap(int level, string variableName, Member member, string xmlNamespace)
	{				
        
        #line default
        #line hidden
        
        #line 272 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 272 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteStartElement(\"");
        
        #line default
        #line hidden
        
        #line 272 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.MarshallName));
        
        #line default
        #line hidden
        
        #line 272 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", \"");
        
        #line default
        #line hidden
        
        #line 272 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 272 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\");\r\n");
        
        #line default
        #line hidden
        
        #line 273 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 273 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\tforeach (var kvp in ");
        
        #line default
        #line hidden
        
        #line 273 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(variableName));
        
        #line default
        #line hidden
        
        #line 273 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(".");
        
        #line default
        #line hidden
        
        #line 273 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.PropertyName));
        
        #line default
        #line hidden
        
        #line 273 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(") \r\n");
        
        #line default
        #line hidden
        
        #line 274 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 274 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t{\r\n");
        
        #line default
        #line hidden
        
        #line 275 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 275 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteStartElement(\"entry\", \"");
        
        #line default
        #line hidden
        
        #line 275 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 275 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\");\r\n");
        
        #line default
        #line hidden
        
        #line 276 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 276 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteElementString(\"key\", \"");
        
        #line default
        #line hidden
        
        #line 276 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 276 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", kvp.Key);\r\n");
        
        #line default
        #line hidden
        
        #line 277 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 277 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteElementString(\"value\", \"");
        
        #line default
        #line hidden
        
        #line 277 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(xmlNamespace));
        
        #line default
        #line hidden
        
        #line 277 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\", kvp.Value);\r\n");
        
        #line default
        #line hidden
        
        #line 278 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 278 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t\txmlWriter.WriteEndElement();\r\n");
        
        #line default
        #line hidden
        
        #line 279 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 279 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\t}\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 280 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(new string(' ', level * 4)));
        
        #line default
        #line hidden
        
        #line 280 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
this.Write("\t\t\t\t\txmlWriter.WriteEndElement();\t\t\t\t\r\n");
        
        #line default
        #line hidden
        
        #line 281 "C:\Dev\repos\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\Marshallers\RestXmlRequestMarshaller.tt"
				
	}
        
        #line default
        #line hidden
    }
    
    #line default
    #line hidden
}