<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Example, Tips&amp;Tricks</title>
        <link>http://blogs.ugidotnet.org/odamiani/category/1854.aspx</link>
        <description>In questa categoria sono contenuti dei piccoli/grandi esempi sviluppati con le varie tecnologie che uso...nonchè "trucchetti" del mestiere.</description>
        <language>it-IT</language>
        <copyright>Omar Damiani</copyright>
        <managingEditor>omar@omardamiani.it</managingEditor>
        <generator>Subtext Version 2.0.0.43</generator>
        <item>
            <title>Web Service: &amp;quot;There is an error in XML&amp;quot;</title>
            <link>http://blogs.ugidotnet.org/odamiani/archive/2007/09/19/88430.aspx</link>
            <description>&lt;p&gt;Ho combattuto per tutto il giorno con questo errore, per poi risolverlo con un &lt;em&gt;giochino&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Il discorso è in sè molto semplice: ho un web service che, dopo qualche peripezia su SAP, mi ritorna una classe neanche troppo complessa ovviamente serializzata.&lt;/p&gt;
&lt;p&gt;Richiamando il webmethod da client però ottenevo il fastidioso errore all'oggetto del post: "There is an error in XML..."&lt;/p&gt;
&lt;p&gt;Facendo la chiamata in locale invece funzionava tutto e se, all'interno dello stesso webmethod mi mettevo a spulciare nella stringa, mi sembrava di avere un xml perfetto.&lt;/p&gt;
&lt;p&gt;Cosa fare allora?&lt;/p&gt;
&lt;p&gt;Beh...premettiamo che non sapevo una cosa abbastanza pesante: non sapevo che i test in locale dei Web Service sono fatti in &lt;a target="_blank" href="http://en.wikipedia.org/wiki/HTTP#Request_methods"&gt;GET&lt;/a&gt;, mentre il loro utilizzo viene correttamente svolto tramite &lt;a target="_blank" href="http://en.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A mio modo di vedere questo rende pressochè inutile il test in locale del web service se non per sapere se il deploy sia andato a buon fine...&lt;/p&gt;
&lt;p&gt;Detto questo per testare un web service da remoto ho trovato di vitale importanza &lt;a target="_blank" href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=65A1D4EA-0F7A-41BD-8494-E916EBC4159C"&gt;Web Service Studio&lt;/a&gt; (link su GotDotNet che non ho capito bene se e quando chiude...).&lt;/p&gt;
&lt;p&gt;Con questo gingillino è possibile richiamare i metodi di un webservice vedendo effettivamente qual'è la richiesta e la risposta SOAP anche, e sopratutto oserei dire, in presenza di errore. Fantastico.&lt;/p&gt;
&lt;p&gt;Quindi ci ho messo ben poco a capire che la stringa di ritorno era farcita da tanti bei ";#x0" (o qualcosa di simile, scusate l'imprecisione), in pratica degli spazi che venivano codificati in quel modo rendendo illegibile la stringa (il motivo in realtà mi è oscuro).&lt;/p&gt;
&lt;p&gt;Allora ho pensato a qualche problema con la serializzazione. Questo ERA il mio codice:&lt;/p&gt;
&lt;div style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; BACKGROUND-COLOR: #999999"&gt;
&lt;p&gt;&amp;lt;WebMethod()&amp;gt; _&lt;br /&gt;
Public Function HelloWorld() As String&lt;br /&gt;
    Dim a As New Class1&lt;br /&gt;
    a.Nome = "Omar"&lt;br /&gt;
    a.Cognome = "Damiani" &lt;/p&gt;
&lt;p&gt;    Dim strm As New IO.MemoryStream&lt;br /&gt;
    Dim writer As New System.Xml.XmlTextWriter(strm, System.Text.Encoding.UTF8)&lt;br /&gt;
    Dim serializer As New Serialization.XmlSerializer(GetType(Class1)) &lt;/p&gt;
&lt;p&gt;    serializer.Serialize(writer, a)&lt;br /&gt;
    Dim sRet As String&lt;br /&gt;
    sRet = &lt;span style="COLOR: #c61f0d"&gt;System.Text.Encoding.UTF8.GetString(strm.GetBuffer())&lt;/span&gt; &lt;br /&gt;
    Return sRet &lt;/p&gt;
&lt;p&gt;End Function &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt; Morale della favola: mi è bastato aggiungere un fantastico Trim alla riga colorata:&lt;/p&gt;
&lt;div style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; BACKGROUND-COLOR: #999999"&gt;
&lt;p&gt;    sRet = &lt;span style="COLOR: #c61f0d"&gt;System.Text.Encoding.UTF8.GetString(strm.GetBuffer()).Trim&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt; Et voilà!&lt;/p&gt;
&lt;p&gt;In realtà per essere sicuro di non ottenere brutte sorprese ho completato il tutto passando prima da un oggetto XmlDocument, in questo modo se per qualsiasi motivo ottengo una stringa che potrebbe generare un errore XML, lo vengo a sapere prima perchè il web service solleverà un errore 500 o un'eccezione nel saggio caso in cui abbiate deciso di gestirlo:&lt;/p&gt;
&lt;div style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; BACKGROUND-COLOR: #999999"&gt;
&lt;p&gt;Dim x As New XmlDocument&lt;br /&gt;
x.LoadXml(sRet)&lt;br /&gt;
Return x.OuterXml &lt;/p&gt;
&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/odamiani/aggbug/88430.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Omar Damiani</dc:creator>
            <guid>http://blogs.ugidotnet.org/odamiani/archive/2007/09/19/88430.aspx</guid>
            <pubDate>Wed, 19 Sep 2007 21:56:07 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/odamiani/comments/88430.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/odamiani/archive/2007/09/19/88430.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/odamiani/comments/commentRss/88430.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/odamiani/services/trackbacks/88430.aspx</trackback:ping>
        </item>
        <item>
            <title>Un promemoria: JS in XSLT</title>
            <link>http://blogs.ugidotnet.org/odamiani/archive/2007/01/26/68751.aspx</link>
            <description>&lt;p&gt;Questo è un promemoria per me, ma che magari serve a qualcuno...&lt;/p&gt;
&lt;p&gt;Se vogliamo inserire del codice JS in un foglio di stile (XSLT) occorre inserirlo in un &amp;lt;CDATA/&amp;gt; altrimenti vengono a galla tutti gli errori di encoding dei caratteri (che inevitabilmente si presentano nel codice, ad esempio "&amp;amp;&amp;amp;" come operatore AND).&lt;/p&gt;
&lt;p&gt;Qundi:&lt;/p&gt;
&lt;div style="BORDER-RIGHT: #000000 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #000000 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #000000 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #000000 1px solid; BACKGROUND-COLOR: #eeeeee"&gt;
&lt;p&gt;&lt;font color="#0080ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#808000"&gt;xsl:text&lt;/font&gt; &lt;font color="#8000ff"&gt;disable-output-escaping&lt;/font&gt;&lt;font color="#0080ff"&gt;=&lt;/font&gt;&lt;font color="#ff00ff"&gt;"yes"&lt;/font&gt;&lt;font color="#0080ff"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;
&lt;font color="#0080ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#808000"&gt;!&lt;/font&gt;[&lt;font color="#8000ff"&gt;CDATA&lt;/font&gt;[ &lt;/p&gt;
&lt;p&gt;&lt;font color="#0080ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#8000ff"&gt;SCRIPT LANGUAGE&lt;/font&gt;&lt;font color="#0080ff"&gt;=&lt;/font&gt;&lt;font color="#ff00ff"&gt;"JavaScript"&lt;/font&gt;&lt;font color="#0080ff"&gt;&amp;gt;&lt;/font&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;function FaiQualcosa()&lt;br /&gt;
{&lt;br /&gt;
   alert('Hello World!');&lt;br /&gt;
}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;font color="#0080ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#8000ff"&gt;SCRIPT&lt;/font&gt;&lt;font color="#0080ff"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;
]]&lt;font color="#0080ff"&gt;&amp;gt;&lt;/font&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#0080ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#808000"&gt;xsl:text&lt;/font&gt;&lt;font color="#0080ff"&gt;&amp;gt; &lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/odamiani/aggbug/68751.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Omar Damiani</dc:creator>
            <guid>http://blogs.ugidotnet.org/odamiani/archive/2007/01/26/68751.aspx</guid>
            <pubDate>Fri, 26 Jan 2007 11:06:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/odamiani/comments/68751.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/odamiani/archive/2007/01/26/68751.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/odamiani/comments/commentRss/68751.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/odamiani/services/trackbacks/68751.aspx</trackback:ping>
        </item>
        <item>
            <title>Script negli XSL</title>
            <link>http://blogs.ugidotnet.org/odamiani/archive/2006/04/03/38230.aspx</link>
            <description>&lt;font face="Verdana" size="2"&gt;
&lt;p&gt;Vi sarà capitato, se lavorate con i file XSL, di voler incrementare le variabili.&lt;/p&gt;
&lt;p&gt;Cominciamo subito con il dire che il valore di una variabile non è...variabile (perchè le avranno chiamate xsl:variable e non xsl:constant rimane, per me, un mistero).&lt;/p&gt;
&lt;p&gt;In realtà, come in tutti gli ambiti informatici, ci sono dei workaround per raggiungere il risultato (ne cito due, uno dei quali è di mio fresco apprendimento):&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Usare i template (questo è un workaround davvero e potrebbe non fare al caso vostro nel 75% dei casi) &lt;/li&gt;
    &lt;li&gt;Usare gli script xsl (tag msxsl:script), questo funziona invece nel 99% dei casi, vedrete dove si nasconde quell'1% (guardacaso io ci sono dentro &lt;img height="19" width="19" align="absMiddle" border="0" alt="" src="http://www.imhoproject.org/files/deluso.gif" /&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Perchè i template potrebbero non fare al caso vostro?&lt;br /&gt;
Beh...potrei sbagliarmi e sfuggermi qualcosa, ma davvero non capisco come un template che incrementi una variabile, possa servire ad incrementare una variabile CONTINUAMENTE magari all'interno di un ciclo.&lt;/p&gt;
&lt;p&gt;Se poi si include che il template risponde più alla definizione di Procedura che non a quella di Funzione (per chi fosse a digiuno di definizioni diciamo che è la stessa differenza che passa tra una Sub e una Function in VB.Net &lt;img height="19" width="19" align="absMiddle" border="0" alt="" src="http://www.imhoproject.org/files/occhiolino.gif" /&gt;)...&lt;/p&gt;
&lt;p&gt;Ma veniamo alla parte più interessante: il tag msxsl:script.&lt;/p&gt;
&lt;p&gt;Per utilizzarlo occorre prima dichiarare che utilizzeremo il suo namespace (msxsl) in questo modo:&lt;/p&gt;
&lt;div style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;lt;xsl:stylesheet &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;version&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="1.0"&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;xmlns:xsl&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="http://www.w3.org/1999/XSL/Transform"&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;xmlns:msxsl&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="urn:schemas-microsoft-com:xslt"&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/font&gt;&lt;font face="Verdana" size="2"&gt;
&lt;p&gt;Ora siamo liberi di scrivere il nostro script, nel linguaggio &lt;a title="" target="" name="" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconXSLTStylesheetScriptingUsingMsxslscript.asp"&gt;che vogliamo&lt;/a&gt;:&lt;/p&gt;
&lt;div style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;lt;msxsl:script &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;language&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="JScript" &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;implements-prefix&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="user"&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;var indice=0;&lt;br /&gt;
&lt;br /&gt;
function Incrementa()&lt;br /&gt;
{&lt;br /&gt;
    indice=indice+1;&lt;br /&gt;
    return indice;&lt;br /&gt;
}&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;msxsl:script&amp;gt;&lt;br /&gt;
&lt;/span&gt;
&lt;p&gt;Io solitamente inserisco questo tag sotto quello di apertura (xsl:stylesheet) ma prima di quello di template (xsl:template), non ho provato ad inserirlo all'interno del template, ma non credo sia comunque logicamente corretto.&lt;/p&gt;
&lt;p&gt;Avrete notato che a questo punto però ho utilizzato anche un altro namespace: lo "user", e allora ci tocca dichiararlo nell'apertura che quindi diventa:&lt;/p&gt;
&lt;div style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;lt;xsl:stylesheet &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;version&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="1.0"&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;xmlns:xsl&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="http://www.w3.org/1999/XSL/Transform"&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;xmlns:msxsl&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="urn:schemas-microsoft-com:xslt"&lt;br /&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;xmlns:user&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="http://miodominio.com/miosito"&amp;gt;&lt;br /&gt;
&lt;/span&gt;
&lt;p&gt;Ora: come utilizzare questa funzione dal nostro XSL?&lt;/p&gt;
&lt;p&gt;Beh...niente di più facile: basta un bel tag xsl:value-of:&lt;/p&gt;
&lt;div style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;    &lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;select&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="user:Incrementa()"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;gt;&lt;br /&gt;
&lt;/span&gt;
&lt;p&gt;Dato che la variabile (questa volta davvero &lt;em&gt;Variabile&lt;/em&gt;) viene inizializzata una volta al valore 0 e poi incrementata, tutte le volte otterremo il suo valore incrementato (stile contatore).&lt;/p&gt;
&lt;p&gt;Ovvio che questo trucco può servire ad inserire altre, e più interessanti, funzioni...&lt;/p&gt;
&lt;p&gt;Come dite?&lt;br /&gt;
Ah...a cosa si riferisce quell'1%?&lt;/p&gt;
&lt;p&gt;Beh...al fatto che Sharepoint, che "ben" &lt;img height="19" width="19" align="absMiddle" border="0" alt="" src="http://www.imhoproject.org/files/deluso.gif" /&gt; si integra con tecnologie XML e .Net, purtoppo &lt;a title="" target="" name="" href="http://weblogs.asp.net/soever/archive/2005/03/08/389371.aspx"&gt;blocca&lt;/a&gt; il fantastico tag msxsl:script...&lt;img height="19" width="19" align="absMiddle" border="0" alt="" src="http://www.imhoproject.org/files/arrabbiato.gif" /&gt;&lt;/p&gt;
&lt;p&gt;Quindi...buon divertimento per chi sviluppa su web "libero"... &lt;img height="19" width="19" align="absMiddle" border="0" alt="" src="http://www.imhoproject.org/files/occhiolino.gif" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://imhoproject.org/"&gt;&lt;font face="Verdana" size="1"&gt;powered by IMHO 1.3&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/font&gt;&lt;!-- Powered by IMHO 1.3 (IT) Instant Blogger Copyright (c) 2005 A.Boschin - http://www.imhoproject.org --&gt;&lt;img src="http://blogs.ugidotnet.org/odamiani/aggbug/38230.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Omar Damiani</dc:creator>
            <guid>http://blogs.ugidotnet.org/odamiani/archive/2006/04/03/38230.aspx</guid>
            <pubDate>Mon, 03 Apr 2006 13:24:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/odamiani/comments/38230.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/odamiani/archive/2006/04/03/38230.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/odamiani/comments/commentRss/38230.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/odamiani/services/trackbacks/38230.aspx</trackback:ping>
        </item>
    </channel>
</rss>