<?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>SIMOTRONE WEB PAGE &#187; XML</title>
	<atom:link href="http://www.simotrone.it/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simotrone.it</link>
	<description>Simotrone is back!</description>
	<lastBuildDate>Fri, 30 Jul 2010 05:47:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>XML::Tidy</title>
		<link>http://www.simotrone.it/2010/01/19/xmltidy/</link>
		<comments>http://www.simotrone.it/2010/01/19/xmltidy/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 06:30:30 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Tidy]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XML::Tidy]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2616</guid>
		<description><![CDATA[Mi è capitato troppe volte di trovarmi file XML assolutamente illeggibili per le mani.
Una soluzione, come al solito, arriva da CPAN: XML::Tidy! 
Ridi e scherza, questo modulino è in realtà un sacco di codice che parsa alla perfezione i file xml e li riordina ad-hoc.

simone@katrina:~$ cat xml-tidy.pl 
#!/usr/bin/perl
use strict;
use warnings;
use XML::Tidy;
my $VERSION = 0.02;
my $file_in [...]]]></description>
			<content:encoded><![CDATA[<p>Mi è capitato troppe volte di trovarmi file XML assolutamente illeggibili per le mani.<br />
Una soluzione, come al solito, arriva da CPAN: <strong>XML::Tidy</strong>! </p>
<p>Ridi e scherza, questo modulino è in realtà un sacco di codice che parsa alla perfezione i file xml e li riordina ad-hoc.</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">simone<span class="re0">@katrina</span>:~$ cat xml-tidy.pl <br />
<span class="co1">#!/usr/bin/perl</span></p>
<p><span class="kw2">use</span> strict;<br />
<span class="kw2">use</span> warnings;<br />
<span class="kw2">use</span> XML::<span class="me2">Tidy</span>;</p>
<p><span class="kw1">my</span> <span class="re0">$VERSION</span> = <span class="nu0">0.02</span>;<br />
<span class="kw1">my</span> <span class="re0">$file_in</span> = <span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> || <a href="http://perldoc.perl.org/functions/die.html"><span class="kw3">die</span></a> <span class="st0">&quot;Usage:<span class="es0">\t</span>$0 &lt;input.xml&gt; &lt;output.xml&gt;<span class="es0">\n</span>&quot;</span>;<br />
<span class="kw1">my</span> <span class="re0">$file_out</span> = <span class="re0">$ARGV</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> || <span class="st0">&#8216;output.xml&#8217;</span>;</p>
<p><span class="kw1">my</span> <span class="re0">$tidy_obj</span> = XML::<span class="me2">Tidy</span>-&gt;<span class="me1">new</span><span class="br0">&#40;</span><span class="st0">&#8216;filename&#8217;</span> =&gt; <span class="re0">$file_in</span><span class="br0">&#41;</span>;<br />
<span class="re0">$tidy_obj</span>-&gt;<span class="me1">tidy</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$tidy_obj</span>-&gt;<span class="me1">write</span><span class="br0">&#40;</span><span class="re0">$file_out</span><span class="br0">&#41;</span>;</div>
</div>
<p>Il mio semplice script prende un file in input da cmdl e sputa fuori un output.xml &#8220;raddrizato&#8221; (2 <em>whitespace</em> di default come indentazione, se si vuole modificare bisogna dare un arogomento al metodo <strong>->tidy()</strong>).</p>
<p>Per <a href="http://search.cpan.org/~pip/XML-Tidy-1.2.54HJnFa/Tidy.pm">ulteriori info</a>.</p>
<p>Nota: La libreria perl sta anche in un pacchetto debian (libxml-tidy-perl) che guarda caso fornisce uno scriptino (/usr/bin/xmltidy) molto simile (quasi identico) al mio. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2010/01/19/xmltidy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ViM plugin</title>
		<link>http://www.simotrone.it/2009/05/27/vim-plugin/</link>
		<comments>http://www.simotrone.it/2009/05/27/vim-plugin/#comments</comments>
		<pubDate>Wed, 27 May 2009 06:50:45 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=1902</guid>
		<description><![CDATA[Dovendo scrivere un po&#8217; di codice xml, mi sono chiesto se ViM avrebbe potuto venirmi in aiuto.
Il plugin xml.vim ha rappresentato la risposta.
Per &#8220;installarlo&#8221; è bastato mettere il file in ~/.vim/plugin/ e far leggere a ViM un file xml.
]]></description>
			<content:encoded><![CDATA[<p>Dovendo scrivere un po&#8217; di codice xml, mi sono chiesto se ViM avrebbe potuto venirmi in aiuto.<br />
Il plugin <a href="http://www.vim.org/scripts/script.php?script_id=301">xml.vim</a> ha rappresentato la risposta.<br />
Per &#8220;installarlo&#8221; è bastato mettere il file in <b>~/.vim/plugin/</b> e far leggere a ViM un file xml.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/05/27/vim-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Formato XML</title>
		<link>http://www.simotrone.it/2009/02/16/formato-xml/</link>
		<comments>http://www.simotrone.it/2009/02/16/formato-xml/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 05:33:10 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[xpath]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=1288</guid>
		<description><![CDATA[Che è? Le taglie delle T-shirt? eXtra Medium Large?
No, nun ce siamo.
Benché in questi mesi io abbia evitato abbastanza accuratamente l&#8217;eXtensible Markup Language (nun me piace), alla lunga ci ho dovuto scozzare.
Non è il diavolo, sia chiaro, ma mi fa strano: scrivi un sacco di roba per avere i dati ben delineati; questo è bene! [...]]]></description>
			<content:encoded><![CDATA[<p>Che è? Le taglie delle T-shirt? eXtra Medium Large?<br />
No, nun ce siamo.</p>
<p>Benché in questi mesi io abbia evitato abbastanza accuratamente l&#8217;<strong>eXtensible Markup Language</strong> (nun me piace), alla lunga ci ho dovuto <em>scozzare</em>.<br />
Non è il diavolo, sia chiaro, ma mi fa strano: scrivi un sacco di roba per avere i dati ben delineati; questo è bene! Solo che scrivi piu&#8217; di contorno che di dati&#8230;<br />
Comunque, poco male.</p>
<hr/>
<p>XML è comodo per manipolare dati. Il formato è assolutamente portabile, flessibile nella nomenclatura e rigido nella struttura. </p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE agenda SYSTEM "address.dtd"&gt;
&lt;addressbook&gt;
    &lt;person&gt;
        &lt;name&gt;Paolo&lt;/name&gt;
        &lt;surname&gt;Rossi&lt;/surname&gt;
        &lt;age&gt;45&lt;/age&gt;
        &lt;country&gt;Italy&lt;/country&gt;
    &lt;/person&gt;
    &lt;person&gt;
        &lt;name&gt;Mario&lt;/name&gt;
        &lt;surname&gt;Bianchi&lt;/surname&gt;
        &lt;age&gt;32&lt;/age&gt;
        &lt;country&gt;Italy&lt;/country&gt;
    &lt;/person&gt;
&lt;/addressbook&gt;</pre>
<p>Con dei dati esposti in questa maniera, chiunque è in grado di capire come sono messi e intuire come possono essere manipolati.</p>
<p><a href="http://www.w3.org/TR/1998/REC-xml-19980210">Specifiche XML</a> del W3C.<br />
<a href="http://www.w3.org/TR/REC-xml-names/">Namespaces</a> in XML.</p>
<p>In un documento XML ci sono 3 parti da distinguere bene:</p>
<ol>
<li>Il contenuto (XML)</li>
<li>Le specifiche per gli elementi di struttura (DTD)</li>
<li>Le specifiche legate alla visualizzazione (XSL, CSS, &#8230;)</li>
</ol>
<p>E&#8217; cosa buona e giusta indicare la <strong>Document Type Declaration</strong> (DTD) del file XML. IL DTD codifica le regole grammaticali per l&#8217;XML (insieme degli elementi, attributi, relazioni gerarchiche, ordine di apparizione, ecc.). Il DTD può essere <u>esplicito</u> (interno all&#8217;XML) o <u>distinto</u> (esterno con riferimento in &lt;!DOCTYPE &#8230;&gt;).</p>
<p>L&#8217;<a href="http://www.w3.org/TR/xslt">XSL</a> (<strong>eXtensible Stylesheet Language</strong>) fornisce i modi per trasformare e presentare i documenti XML (ie: ci può permettere di convertire il documento XML in un formato adatto ad un supporto differente, come l&#8217;HTML). L&#8217;XSL utilizza <em>pattern</em> per specificare gli elementi XML a cui applicare un determinato template (regole su come disporre il pattern).<br />
Per aggiungere uno stylesheet, è necessario inserire una riga con il riferimento nell&#8217;XML:</p>
<pre>&lt;?xml-stylesheet type="text/xsl" href="file.xsl"?&gt;</pre>
<p><a href="http://www.w3.org/TR/xpath.html">XML XPath</a> è un linguaggio per &#8220;esplorare&#8221; i file XML (un <a href="http://www.w3schools.com/XPath/">tutorial</a> del W3C).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/02/16/formato-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Promemoria link</title>
		<link>http://www.simotrone.it/2008/06/29/promemoria-link/</link>
		<comments>http://www.simotrone.it/2008/06/29/promemoria-link/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 21:45:39 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=580</guid>
		<description><![CDATA[Promemoria link di questo periodo.

Stylus Studio: a proposito di XML e XSLT.  Lavorare con l&#8217;XSLT. 
XMLpitstop: un sito con quintali di stylesheet e altro.
Explorer Exposed: quando i css fanno i capricci con Exploder.Peek-a-boo IE6 bug.
Complex Spiral Consulting: quando si lavora con float dei css, e quella colonna fa un po&#8217; quel caxxo che le [...]]]></description>
			<content:encoded><![CDATA[<p>Promemoria link di questo periodo.</p>
<ul>
<li><a href="http://www.stylusstudio.com/"><strong>Stylus Studio</strong></a>: a proposito di XML e XSLT. <br/> <a href="http://www.stylusstudio.com/docs/v2006/d_xslt.html">Lavorare con l&#8217;XSLT</a>. </li>
<li><a href="http://www.xmlpitstop.com/"><strong>XMLpitstop</strong></a>: un sito con quintali di stylesheet e altro.</li>
<li><a href="http://www.positioniseverything.net/explorer.html"><strong>Explorer Exposed</strong></a>: quando i css fanno i capricci con Exploder.<br/><a href="http://www.positioniseverything.net/explorer/peekaboo.html">Peek-a-boo IE6 bug</a>.</li>
<li><a href="http://www.complexspiral.com/"><strong>Complex Spiral Consulting</strong></a>: quando si lavora con <em>float</em> dei css, e quella colonna fa un po&#8217; quel caxxo che le pare.<br/><a href="http://www.complexspiral.com/publications/containing-floats/">Containing float</a>.</li>
<li><a href="http://www.alistapart.com/"><strong>A list apart</strong></a>: meriterebbe sempre la citazione, quando si parla di css.<br/> In questo caso, chiaccheriamo del <a href="http://www.alistapart.com/articles/goingtoprint/">css per la stampa; media=&#8221;print&#8221;</a>.</li>
<li><a href="http://www.gingerall.org/sablotron.html"><strong>Sablotron</strong></a>: XML parser opensource per php.<br/>By <a href="http://www.gingerall.com/open-source-services.html">Gingerall</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2008/06/29/promemoria-link/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
