<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>XML e dintorni</title>
        <link>http://blogs.ugidotnet.org/odamiani/category/1932.aspx</link>
        <description>XML, XSL, XSLT e varie sfumature :)
...applicati i vari ambiti...</description>
        <language>it-IT</language>
        <copyright>Omar Damiani</copyright>
        <managingEditor>omar@omardamiani.it</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>SilverLight HelloWorld!</title>
            <link>http://blogs.ugidotnet.org/odamiani/archive/2008/04/07/92084.aspx</link>
            <description>&lt;p&gt;Oggi, dopo che ho ultimato una piccola applicazione con un leggero anticipo, mi sono autopremiato provando a fare qualcosa per la prima volta con &lt;a href="http://www.google.it/url?sa=t&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fsilverlight.net%2F&amp;amp;ei=ITX6R_yEM5u8zQS8lc2tDA&amp;amp;usg=AFQjCNEf21KHcLcFdVhG-T9tmTzP6Np3fg&amp;amp;sig2=gceIvfv_Rcg0itY7VLjfew" target="_blank"&gt;SilverLight&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Già ho avuto modo di poter vedere cosa &lt;a href="http://memorabilia.hardrock.com/" target="_blank"&gt;si può fare&lt;/a&gt;, ma era ora di poter "sporcarsi le mani" e capire se non altro &lt;em&gt;COSA&lt;/em&gt; si deve fare per produrre &lt;em&gt;QUALCOSA&lt;/em&gt; con SilverLight.&lt;/p&gt; &lt;p&gt;Non essendo ancora riuscito a scaricare il &lt;a href="http://csna01.libredigital.com/" target="_blank"&gt;libro gratuito&lt;/a&gt; (dei 3, quello di SilverLight è proprio quello che mi da errore), e non trovando l'email di &lt;a href="http://blog.boschin.it/Default.aspx" target="_blank"&gt;Andrea&lt;/a&gt;, era ancora a totale digiuno.&lt;/p&gt; &lt;p&gt;Allora ho cercato sulla Rete finchè mi sono imbattuto nel &lt;a href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-1-creating-quot-hello-world-quot-with-silverlight-2-and-vs-2008.aspx" target="_blank"&gt;tutorial&lt;/a&gt; di &lt;em&gt;un certo&lt;/em&gt; (cit.) Scott Guthrie.&lt;/p&gt; &lt;p&gt;E' proprio quello che cercavo per cominciare.&lt;/p&gt; &lt;p&gt;Visual Studio 2008 ce l'ho già installato, quindi scarico i &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&amp;amp;displaylang=en" target="_blank"&gt;SilverLight Tools for VS Beta 1&lt;/a&gt; e seguo il tutorial.&lt;/p&gt; &lt;p&gt;Dopo circa 10 minuti avevo già fatto la mia prima applicazione SilverLight, bello!&lt;/p&gt; &lt;p&gt;Devo dire di essere molto soddisfatto e divertito, peccato solo che negli ambienti dove bazzico il Framework 3.5 sia ancora abbastanza lontanuccio...&lt;/p&gt; &lt;p&gt;Però già il fatto che, almeno in locale posso sviluppare per me vuol dire già tantissimo.&lt;/p&gt; &lt;p&gt;Grande SilverLight...da oggi si apre quindi un'altra sfida...&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/odamiani/aggbug/92084.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Omar Damiani</dc:creator>
            <guid>http://blogs.ugidotnet.org/odamiani/archive/2008/04/07/92084.aspx</guid>
            <pubDate>Mon, 07 Apr 2008 15:07:36 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/odamiani/comments/92084.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/odamiani/archive/2008/04/07/92084.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/odamiani/comments/commentRss/92084.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/odamiani/services/trackbacks/92084.aspx</trackback:ping>
        </item>
        <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 href="http://en.wikipedia.org/wiki/HTTP#Request_methods" target="_blank"&gt;GET&lt;/a&gt;, mentre il loro utilizzo viene correttamente svolto tramite &lt;a href="http://en.wikipedia.org/wiki/SOAP" target="_blank"&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 href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=65A1D4EA-0F7A-41BD-8494-E916EBC4159C" target="_blank"&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;blockquote&gt; &lt;p&gt;function FaiQualcosa()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp; 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;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   src="http://www.imhoproject.org/files/deluso.gif"   width=19 align=absMiddle border=0&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 src="http://www.imhoproject.org/files/occhiolino.gif" width=19 align=absMiddle border=0&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&amp;nbsp;&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;/DIV&gt;&lt;/SPAN&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="" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconXSLTStylesheetScriptingUsingMsxslscript.asp" target="" name=""&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&amp;nbsp;&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"&amp;nbsp;&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&amp;nbsp;indice=0;&lt;BR&gt;&lt;BR&gt;function&amp;nbsp;Incrementa()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;indice=indice+1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;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;/DIV&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&amp;nbsp;&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;/DIV&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;lt;xsl:value-of&amp;nbsp;&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;/DIV&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 src="http://www.imhoproject.org/files/deluso.gif" width=19 align=absMiddle border=0&gt;&amp;nbsp;si integra con tecnologie XML e .Net, 
purtoppo &lt;A title="" href="http://weblogs.asp.net/soever/archive/2005/03/08/389371.aspx" target="" name=""&gt;blocca&lt;/A&gt; il fantastico tag msxsl:script...&lt;IMG height=19 src="http://www.imhoproject.org/files/arrabbiato.gif" width=19 align=absMiddle border=0&gt;&lt;/P&gt;
&lt;P&gt;Quindi...buon divertimento per chi sviluppa su web "libero"... &lt;IMG height=19 src="http://www.imhoproject.org/files/occhiolino.gif" width=19 align=absMiddle border=0&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;/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>