<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>THE .NET WAY &#187; XML</title>
	<atom:link href="http://www.thedotnetway.net/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thedotnetway.net</link>
	<description>El blog Tecnológico de Emilio Torrens y Jordi Cladera</description>
	<lastBuildDate>Thu, 29 Jul 2010 08:27:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Obtener los datos XML de un Documento SOAP</title>
		<link>http://www.thedotnetway.net/2009/01/09/obtener-los-datos-xml-de-un-documento-soap/</link>
		<comments>http://www.thedotnetway.net/2009/01/09/obtener-los-datos-xml-de-un-documento-soap/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 08:23:00 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://thedotnetway.wordpress.com/2009/01/09/obtener-los-datos-xml-de-un-documento-soap/</guid>
		<description><![CDATA[Mas de mi servicio &#34;impersonal&#34; &#8230; Resulta que ahora también recibe documentos SOAP, así que tengo que extraer los datos del mensaje SOAP con este código: private XmlDocument GetSOAPBody(XmlDocument xmlSoap) { const string SOAP_NAMESPACE = "http://schemas.xmlsoap.org/soap/envelope/"; XmlNodeList nodes = xmlSoap.GetElementsByTagName("Body", SOAP_NAMESPACE); if (nodes.Count == 0) return xmlSoap; XmlElement body = (XmlElement)nodes.Item(0); nodes = body.ChildNodes; for [...]]]></description>
			<content:encoded><![CDATA[<p>Mas de mi servicio &quot;impersonal&quot; &#8230;</p>
<p>Resulta que ahora también recibe documentos SOAP, así que tengo que extraer los datos del mensaje SOAP con este código:</p>
<div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:36df10a3-f25c-49cb-9410-dbd5e2b45669" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:#FFFFFF;white-space:pre-wrap;overflow:auto;font-family:Microsoft Sans Serif;font-size:11px;"><span style="color:#0000FF;">private</span><span style="color:#000000;"> XmlDocument GetSOAPBody(XmlDocument xmlSoap)
    {

              </span><span style="color:#0000FF;">const</span><span style="color:#000000;"> </span><span style="color:#0000FF;">string</span><span style="color:#000000;"> SOAP_NAMESPACE </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">http://schemas.xmlsoap.org/soap/envelope/</span><span style="color:#800000;">"</span><span style="color:#000000;">;
              XmlNodeList nodes </span><span style="color:#000000;">=</span><span style="color:#000000;"> xmlSoap.GetElementsByTagName(</span><span style="color:#800000;">"</span><span style="color:#800000;">Body</span><span style="color:#800000;">"</span><span style="color:#000000;">, SOAP_NAMESPACE);

          </span><span style="color:#0000FF;">if</span><span style="color:#000000;"> (nodes.Count </span><span style="color:#000000;">==</span><span style="color:#000000;"> </span><span style="color:#800080;">0</span><span style="color:#000000;">) </span><span style="color:#0000FF;">return</span><span style="color:#000000;"> xmlSoap;

          XmlElement body </span><span style="color:#000000;">=</span><span style="color:#000000;"> (XmlElement)nodes.Item(</span><span style="color:#800080;">0</span><span style="color:#000000;">);

          nodes </span><span style="color:#000000;">=</span><span style="color:#000000;"> body.ChildNodes;
          </span><span style="color:#0000FF;">for</span><span style="color:#000000;"> (</span><span style="color:#0000FF;">int</span><span style="color:#000000;"> i </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800080;">0</span><span style="color:#000000;">; i </span><span style="color:#000000;">&lt;</span><span style="color:#000000;"> nodes.Count; i</span><span style="color:#000000;">++</span><span style="color:#000000;">)
          {
              XmlNode node </span><span style="color:#000000;">=</span><span style="color:#000000;"> nodes.Item(i);
              </span><span style="color:#0000FF;">if</span><span style="color:#000000;"> (node </span><span style="color:#0000FF;">is</span><span style="color:#000000;"> XmlElement)
              {
                  xmlSoap </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> XmlDocument();
                  xmlSoap.LoadXml(node.OuterXml);
                  IsSOAP </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">true</span><span style="color:#000000;">;
                  </span><span style="color:#0000FF;">return</span><span style="color:#000000;"> xmlSoap;
              }
          }

          </span><span style="color:#0000FF;">return</span><span style="color:#000000;"> xmlSoap;
      }  </span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p>Funciona bastante bien, ahora estoy con el de generar las respuestas de OK y de Error, ya lo publicare <img src='http://www.thedotnetway.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2009/01/09/obtener-los-datos-xml-de-un-documento-soap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cliente SOAP para servicios PHP o Java AXIS</title>
		<link>http://www.thedotnetway.net/2008/04/14/cliente-soap-para-servicios-php-o-java-axis/</link>
		<comments>http://www.thedotnetway.net/2008/04/14/cliente-soap-para-servicios-php-o-java-axis/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 14:08:00 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[WebServices]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://thedotnetway.wordpress.com/2008/04/14/cliente-soap-para-servicios-php-o-java-axis/</guid>
		<description><![CDATA[Aquí dejo una clase para consumir servicios web vía SOAP en los que no tengamos el WSDL o que el Wizard nos de problemas: using System; using System.Text; using System.IO; using System.Net; using System.Xml; namespace Test { class SOAPClient { public static XmlDocument SendMsg(XmlDocument xmlRQ) { byte[] byte1; Stream myStream; StreamReader readStream; HttpWebRequest wr = [...]]]></description>
			<content:encoded><![CDATA[<p>Aquí dejo una clase para consumir servicios web vía SOAP en los que no tengamos el WSDL o que el Wizard nos de problemas: </p>
</p>
<div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:1642f31f-25a9-48f8-9a65-f0d8294f2ab1" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:#FFFFFF;white-space:pre-wrap;overflow:auto;font-family:Microsoft Sans Serif;font-size:11px;"><span style="color:#0000FF;">using</span><span style="color:#000000;"> System;
</span><span style="color:#0000FF;">using</span><span style="color:#000000;"> System.Text;
</span><span style="color:#0000FF;">using</span><span style="color:#000000;"> System.IO;
</span><span style="color:#0000FF;">using</span><span style="color:#000000;"> System.Net;
</span><span style="color:#0000FF;">using</span><span style="color:#000000;"> System.Xml;

</span><span style="color:#0000FF;">namespace</span><span style="color:#000000;"> Test
    {
    </span><span style="color:#0000FF;">class</span><span style="color:#000000;"> SOAPClient
        {

        </span><span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">static</span><span style="color:#000000;"> XmlDocument SendMsg(XmlDocument xmlRQ)
            {
                </span><span style="color:#0000FF;">byte</span><span style="color:#000000;">[] byte1;
                Stream myStream;
                StreamReader readStream;

                HttpWebRequest wr </span><span style="color:#000000;">=</span><span style="color:#000000;">
                    (HttpWebRequest)WebRequest.
                    Create(</span><span style="color:#800000;">"</span><span style="color:#800000;">http://laurl.com/ws.php</span><span style="color:#800000;">"</span><span style="color:#000000;">);

                byte1 </span><span style="color:#000000;">=</span><span style="color:#000000;">
                Encoding.GetEncoding(</span><span style="color:#800080;">1252</span><span style="color:#000000;">).GetBytes(xmlRQ.OuterXml);
                wr.Method </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">POST</span><span style="color:#800000;">"</span><span style="color:#000000;">;
                wr.Headers.Add(</span><span style="color:#800000;">"</span><span style="color:#800000;">SOAPAction</span><span style="color:#800000;">"</span><span style="color:#000000;">, </span><span style="color:#800000;">""</span><span style="color:#000000;">);
                wr.ContentType </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">text/xml; charset=\"utf-8\"</span><span style="color:#800000;">"</span><span style="color:#000000;">;
                wr.Accept </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">text/xml</span><span style="color:#800000;">"</span><span style="color:#000000;">;

                myStream </span><span style="color:#000000;">=</span><span style="color:#000000;"> wr.GetRequestStream();
                myStream.Write(byte1, </span><span style="color:#800080;">0</span><span style="color:#000000;">, byte1.Length);
                myStream.Close();

                myStream </span><span style="color:#000000;">=</span><span style="color:#000000;"> wr.GetResponse().GetResponseStream();
                readStream </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> StreamReader(myStream);
                XmlDocument xmlDoc </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> XmlDocument();
                xmlDoc.Load(readStream);
                myStream.Close();

                </span><span style="color:#0000FF;">return</span><span style="color:#000000;"> getSOAPPayload(xmlDoc, </span><span style="color:#800000;">"</span><span style="color:#800000;">body</span><span style="color:#800000;">"</span><span style="color:#000000;">);
            }

          </span><span style="color:#0000FF;">private</span><span style="color:#000000;"> </span><span style="color:#0000FF;">static</span><span style="color:#000000;"> XmlDocument getSOAPPayload(XmlDocument rs,
                                                    </span><span style="color:#0000FF;">string</span><span style="color:#000000;"> Tag)
            {

                XmlNode xmlNode </span><span style="color:#000000;">=</span><span style="color:#000000;">
                    rs.GetElementsByTagName(Tag)[</span><span style="color:#800080;">0</span><span style="color:#000000;">].FirstChild;
                XmlDocument xmlResult </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> XmlDocument();
                xmlResult.LoadXml(xmlNode.Value);
                </span><span style="color:#0000FF;">return</span><span style="color:#000000;"> xmlResult;
            }

        }
    }</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2008/04/14/cliente-soap-para-servicios-php-o-java-axis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
