<?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 always here!</description>
	<lastBuildDate>Sat, 04 Feb 2012 18:30:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Formatting</title>
		<link>http://www.simotrone.it/2011/09/24/formatting/</link>
		<comments>http://www.simotrone.it/2011/09/24/formatting/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 05:08:22 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[format]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=3525</guid>
		<description><![CDATA[XML: sim@idrogeno:~$ xmllint &#8211;format sim@idrogeno:~$ tidy -xml HTML: sim@idrogeno:~$ tidy -i -w 0 xmllint vale ben una messa&#8230; C&#8217;ha pure uno shell mode!]]></description>
			<content:encoded><![CDATA[<p>XML:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:~$ xmllint &#8211;format<br />
sim@idrogeno:~$ tidy -xml</div>
</div>
<p>HTML:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:~$ tidy -i -<span class="kw2">w</span> <span class="nu0">0</span></div>
</div>
<p><a href="http://www.manpagez.com/man/1/xmllint/">xmllint</a> vale ben una messa&#8230; C&#8217;ha pure uno shell mode!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2011/09/24/formatting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML: Children vs Elements</title>
		<link>http://www.simotrone.it/2010/11/22/xml-children-vs-elements/</link>
		<comments>http://www.simotrone.it/2010/11/22/xml-children-vs-elements/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 20:57:47 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XML::LibXML]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=3106</guid>
		<description><![CDATA[Usando XML::LibXML: @nodes = $node-&#62;getChildrenByTagName&#40;$tag&#41;; ritorna i nodi figli diretti di $node identificati da $tag. @nodes = $node-&#62;getElementsByTagName&#40;$tag&#41;; ritorna tutti gli elementi discendenti di $node identificati da $tag. L&#8217;array in questione ritorna la lista di nodi in ordine &#8220;depth-first&#8221; (prima percorre l&#8217;albero in profondità, poi in larghezza). Le specifiche del DOM.]]></description>
			<content:encoded><![CDATA[<p>Usando <a href="http://search.cpan.org/~pajas/XML-LibXML-1.70/lib/XML/LibXML/Element.pod">XML::LibXML</a>:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;"><span class="re0">@nodes</span> = <span class="re0">$node</span>-&gt;<span class="me1">getChildrenByTagName</span><span class="br0">&#40;</span><span class="re0">$tag</span><span class="br0">&#41;</span>;</div>
</div>
<p>ritorna i nodi figli diretti di $node identificati da $tag.</p>
<hr/>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;"><span class="re0">@nodes</span> = <span class="re0">$node</span>-&gt;<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="re0">$tag</span><span class="br0">&#41;</span>;</div>
</div>
<p>ritorna tutti gli elementi discendenti di $node identificati da $tag.<br />
L&#8217;<em>array</em> in questione ritorna la lista di nodi in ordine &#8220;<em>depth-first</em>&#8221; (prima percorre l&#8217;albero in profondità, poi in larghezza).</p>
<p>Le <a href="http://www.w3.org/TR/DOM-Level-3-Core/core.html">specifiche del DOM</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2010/11/22/xml-children-vs-elements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 [...]]]></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; [...]]]></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 [...]]]></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>

