public static String WriteSoapMessageStart(XmlWriter writer, Prefixes prefixes, WsXmlNamespaces additionalPrefixes, WsWsaHeader header, AppSequence appSequence) { String messageId = "urn:uuid:" + Guid.NewGuid(); String xml = "<?xml version='1.0' encoding='UTF-8'?>" + "<soap:Envelope xmlns:soap='" + WsWellKnownUri.SoapNamespaceUri + "' " + "xmlns:wsa='" + WsWellKnownUri.WsaNamespaceUri_2005_08 + "' "; if ((prefixes & Prefixes.Wsdp) != Prefixes.None) { xml += "xmlns:wsdp='" + WsWellKnownUri.WsdpNamespaceUri + "' "; } if ((prefixes & Prefixes.Wse) != Prefixes.None) { xml += "xmlns:wse='" + WsWellKnownUri.WseNamespaceUri + "' "; } if ((prefixes & Prefixes.Wsx) != Prefixes.None) { xml += "xmlns:wsx='" + WsWellKnownUri.WsxNamespaceUri + "' "; } if ((prefixes & Prefixes.Wsd) != Prefixes.None || appSequence != null) { xml += "xmlns:wsd='" + WsWellKnownUri.WsdNamespaceUri + "' "; } if (additionalPrefixes != null) { int count = additionalPrefixes.Count; WsXmlNamespace current; for (int i = 0; i < count; i++) { current = additionalPrefixes[i]; xml += "xmlns:" + current.Prefix + "='" + current.NamespaceURI + "' "; } } xml += ">" + "<soap:Header>" + "<wsa:To soap:mustUnderstand=\"1\">" + header.To + "</wsa:To>" + "<wsa:Action soap:mustUnderstand=\"1\">" + header.Action + "</wsa:Action>" + "<wsa:MessageID>" + messageId + "</wsa:MessageID>"; if (header.RelatesTo != null) { xml += "<wsa:RelatesTo>" + header.RelatesTo + "</wsa:RelatesTo>"; } if (header.From != null) { xml += "<wsa:From><wsa:Address>" + header.From.Address.AbsoluteUri + "</wsa:Address></wsa:From>"; } if (header.ReplyTo != null) { xml += "<wsa:ReplyTo><wsa:Address>" + header.ReplyTo.Address.AbsoluteUri + "</wsa:Address></wsa:ReplyTo>"; } if (appSequence != null) { xml += "<wsd:AppSequence InstanceId='" + appSequence.InstanceId + "' " + "SequenceId='" + appSequence.SequenceId + "' " + "MessageNumber='" + appSequence.MessageNumber + "'/>"; } writer.WriteRaw(xml); if (header.Any != null) { header.Any.WriteTo(writer); } writer.WriteRaw("</soap:Header><soap:Body>"); return messageId; }