Ejemplo n.º 1
0
        /// <summary>
        /// Serializes beginning of SOAP envelope into X-Road message.
        /// </summary>
        public static void WriteSoapEnvelope(this XmlWriter writer, IMessageFormatter messageFormatter, ProtocolDefinition protocolDefinition)
        {
            var soapEnvPrefix = protocolDefinition != null ? protocolDefinition.GlobalNamespacePrefixes[messageFormatter.Namespace] : PrefixConstants.SOAP_ENV;

            messageFormatter.WriteStartEnvelope(writer, soapEnvPrefix);

            if (protocolDefinition == null)
            {
                return;
            }

            foreach (var kvp in protocolDefinition.GlobalNamespacePrefixes)
            {
                writer.WriteAttributeString(PrefixConstants.XMLNS, kvp.Value, NamespaceConstants.XMLNS, kvp.Key.NamespaceName);
            }

            if (protocolDefinition.Style is RpcEncodedStyle)
            {
                writer.WriteAttributeString("encodingStyle", messageFormatter.Namespace, NamespaceConstants.SOAP_ENC);
            }
        }