{"id":14,"date":"2009-01-28T09:18:00","date_gmt":"2009-01-28T09:18:00","guid":{"rendered":"http:\/\/www.vcrini.com\/impressioni\/?p=14"},"modified":"2009-01-28T09:18:00","modified_gmt":"2009-01-28T09:18:00","slug":"validatore-xml-sotto-linux-con-vim","status":"publish","type":"post","link":"https:\/\/www.vcrini.com\/impressioni\/?p=14","title":{"rendered":"validatore xml sotto linux con vim"},"content":{"rendered":"<p>Mi avrebbe evitato un&#8217;errore qualche giorno fa mentre testavo un parser di xml proprio perch\u00e8 vim 7 non ha di default un formattatore e validatore di xml ma \u00e8 molto semplice aggiungerne uno.<\/p>\n<p>Inserendo in vimrc la seguente riga<\/p>\n<p>vmap ,px !xmllint &#8211;format -&lt;cr&gt;<\/p>\n<p>basta selezionare in modalit\u00e0 visuale ci\u00f2 che si vuole verificare e digitare &#8216;,px&#8217; a questo punto se l&#8217;xml \u00e8 valido viene formattato altrimenti segnala un errore e specifica anche il punto.<\/p>\n<p>Quindi si passa da<\/p>\n<p>&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt; &lt;message version=&#8221;1&#8243; type=&#8221;foo&#8221;&gt; &lt;metadata1&gt; bla&lt;\/metadata1&gt; &lt;metadata2&gt; bla bla&lt;\/metadata2&gt; &lt;\/message&gt;<\/p>\n<p>a<\/p>\n<p>&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt; <br \/>&lt;message version=&#8221;1&#8243; type=&#8221;foo&#8221;&gt;<br \/>&lt;metadata1&gt; bla&lt;\/metadata1&gt;<br \/>&lt;metadata2&gt; bla bla&lt;\/metadata2&gt;<br \/>&lt;\/message&gt;<\/p>\n<p>ma se c&#8217;\u00e8 un errore (ad esempio manca un &#8216;?&#8217; iniziale)<\/p>\n<p>&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt; &lt;message version=&#8221;1&#8243; type=&#8221;foo&#8221;&gt; &lt;metadata1&gt; bla&lt;\/metadata1&gt; &lt;metadata2&gt; bla bla&lt;\/metadata2&gt; &lt;\/message&gt;<\/p>\n<p>otteniamo<\/p>\n<p>-:1: parser error : attributes construct error<br \/>&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt; &lt;message version=&#8221;1&#8243; type=&#8221;&#8221; parser=&#8221;&#8221; error=&#8221;&#8221; couldn=&#8221;&#8221; t=&#8221;&#8221; find=&#8221;&#8221; end=&#8221;&#8221; of=&#8221;&#8221; start=&#8221;&#8221; tag=&#8221;&#8221; xml=&#8221;&#8221; line=&#8221;&#8221; 1=&#8221;&#8221;&gt;&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt; &lt;message version=&#8221;1&#8243; type=&#8221;&#8221; parser=&#8221;&#8221; error=&#8221;&#8221; extra=&#8221;&#8221; content=&#8221;&#8221; at=&#8221;&#8221; end=&#8221;&#8221; of=&#8221;&#8221; the=&#8221;&#8221; document=&#8221;&#8221;&gt;&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt; &lt;message version=&#8221;1&#8243; type=&#8221;&#8221;&gt;<\/p>\n<p>&lt;\/message&gt;&lt;\/xml&gt;&lt;\/message&gt;&lt;\/xml&gt;&lt;\/message&gt;&lt;\/xml&gt;&lt;\/xml&gt;&lt;\/cr&gt;&lt;cr&gt;&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt;&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt;&lt;message version=&#8221;1&#8243; type=&#8221;&#8221; parser=&#8221;&#8221; error=&#8221;&#8221; couldn=&#8221;&#8221; t=&#8221;&#8221; find=&#8221;&#8221; end=&#8221;&#8221; of=&#8221;&#8221; start=&#8221;&#8221; tag=&#8221;&#8221; xml=&#8221;&#8221; line=&#8221;&#8221; 1=&#8221;&#8221;&gt;&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt;&lt;message version=&#8221;1&#8243; type=&#8221;&#8221; parser=&#8221;&#8221; error=&#8221;&#8221; extra=&#8221;&#8221; content=&#8221;&#8221; at=&#8221;&#8221; end=&#8221;&#8221; of=&#8221;&#8221; the=&#8221;&#8221; document=&#8221;&#8221;&gt;&lt;xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;yes&#8221;&gt;&lt;message version=&#8221;1&#8243; type=&#8221;&#8221;&gt;<br \/>&lt;\/message&gt;&lt;\/xml&gt;&lt;\/me<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mi avrebbe evitato un&#8217;errore qualche giorno fa mentre testavo un parser di xml proprio perch\u00e8 vim 7 non ha di default un formattatore e validatore di xml ma \u00e8 molto semplice aggiungerne uno. Inserendo in vimrc la seguente riga vmap &hellip; <a href=\"https:\/\/www.vcrini.com\/impressioni\/?p=14\">Continua a leggere<span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=\/wp\/v2\/posts\/14"}],"collection":[{"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14"}],"version-history":[{"count":0,"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vcrini.com\/impressioni\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}