{"id":92,"date":"2014-06-18T23:21:44","date_gmt":"2014-06-18T21:21:44","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=92"},"modified":"2014-06-18T23:21:44","modified_gmt":"2014-06-18T21:21:44","slug":"xml-tutorial-6-usare-xmlbeans","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/xml-tutorial-6-usare-xmlbeans\/","title":{"rendered":"XML TUTORIAL &#8211; 6 &#8211; USARE XMLBEANS"},"content":{"rendered":"<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Con l&#8217;articolo di oggi vediamo in dettaglio come sfruttare una delle librerie pi\u00f9 note nella gestione dei file XML, ovvero\u00a0<a style=\"color: #2675b5;\" title=\"XMLBEANS\" href=\"http:\/\/xmlbeans.apache.org\/\" target=\"_blank\">XMLBEANS<\/a>\u00a0dell&#8217;Apache Software Foundation.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Questa libreria permette di generare a partire dallo schema XSD tutte le classi per la manipolazione di file xml che rispettino lo schema dato.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Per l&#8217;installazione rimando alla guida esauriente presente sul sito di XMLBEANS. Per l&#8217;utilizzo vediamo invece quali sono gli step da seguire.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Individuiamo uno schema XSD, da cui generare le nostre classi e scegliamo la struttura libro.<\/p>\n<pre class=\"lang:default decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;schema xmlns=\"http:\/\/www.w3.org\/2001\/XMLSchema\" targetNamespace=\"http:\/\/www.example.org\/libro\" xmlns:tns=\"http:\/\/www.example.org\/libro\" elementFormDefault=\"qualified\"&gt;\r\n&lt;element name=\"libro\" type=\"tns:LibroType\"&gt;&lt;\/element&gt;\r\n&lt;complexType name=\"LibroType\"&gt;\r\n&lt;sequence&gt;\r\n&lt;element name=\"capitolo\" type=\"tns:CapitoloType\"\r\nmaxOccurs=\"unbounded\" minOccurs=\"1\"&gt;\r\n&lt;\/element&gt;\r\n&lt;element name=\"autore\" type=\"tns:AutoreType\" maxOccurs=\"unbounded\" minOccurs=\"1\"&gt;&lt;\/element&gt;\r\n&lt;\/sequence&gt;\r\n&lt;attribute name=\"titolo\" type=\"string\" use=\"required\"&gt;&lt;\/attribute&gt;\r\n&lt;\/complexType&gt;\r\n&lt;complexType name=\"CapitoloType\"&gt;\r\n&lt;sequence&gt;\r\n&lt;element name=\"contenuto\" type=\"string\" minOccurs=\"1\" maxOccurs=\"1\"&gt;&lt;\/element&gt;\r\n&lt;\/sequence&gt;\r\n&lt;attribute name=\"titolo\" type=\"string\" use=\"required\"&gt;&lt;\/attribute&gt;\r\n&lt;\/complexType&gt;\r\n&lt;complexType name=\"AutoreType\"&gt;\r\n&lt;attribute name=\"Cognome\" type=\"string\" use=\"required\"&gt;&lt;\/attribute&gt;\r\n&lt;attribute name=\"Nome\" type=\"string\" use=\"required\"&gt;&lt;\/attribute&gt;\r\n&lt;\/complexType&gt;\r\n&lt;\/schema&gt;<\/pre>\n<p>Tramite la direttiva scomp posso generare la libreria contenente le classi per la manipolazione dei file.<\/p>\n<pre class=\"lang:default decode:true \">scomp libro.xsd -out libro.jar -javasource 1.5<\/pre>\n<p>Con questo comando dico a XmlBeans di generare un jar che libro.jar secondo gli standard di java 1.5<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">A questo punto importanto la libreria dentro un qualsiasi progetto posso creare file xml in accordo con lo schema definito o validare dei file xml esistenti.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\"><strong>Lettura File XML<\/strong><\/p>\n<pre class=\"lang:default decode:true \">File file = new File(\"libro.xml\");\r\nLibroDocument parse = Factory.parse(file);\r\nLibroType libro = parse.getLibro();<\/pre>\n<p>In questo modo posso instanziare un oggetto libro ottenuto dalla lettura del file xml<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\"><strong>Creazione File XML<\/strong><\/p>\n<pre class=\"lang:default decode:true \">LibroDocument newInstance = Factory.newInstance();\r\nnewInstance.addNewLibro();\r\nnewInstance.getLibro().setTitolo(\"titolo\");\r\nnewInstance.save(new File(\"libro2.xml\"));<\/pre>\n<p>In questo modo posso creare un file xml a partire dall&#8217;oggetto java.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\"><strong>Validazione File XML<\/strong><\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Ultimo caso, ma non per questo meno interessante, prevede lo scenario in cui l&#8217;utente vuole verificare se il file da analizzare rispetta lo schema e in caso negativo in quali punti non \u00e8 corretto.<\/p>\n<pre class=\"lang:default decode:true \">Collection&lt;XmlError&gt; errors = new ArrayList&lt;XmlError&gt;();\r\nXmlOptions options = new XmlOptions();\r\noptions.setErrorListener(errors);\r\nnewInstance.validate(options);<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con l&#8217;articolo di oggi vediamo in dettaglio come sfruttare una delle librerie pi\u00f9 note nella gestione dei file XML, ovvero\u00a0XMLBEANS\u00a0dell&#8217;Apache Software Foundation. Questa libreria permette di generare a partire dallo schema XSD tutte le classi per la manipolazione di file xml che rispettino lo schema dato. Per l&#8217;installazione rimando alla guida esauriente presente sul sito &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/xml-tutorial-6-usare-xmlbeans\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">XML TUTORIAL &#8211; 6 &#8211; USARE XMLBEANS<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12],"tags":[13,15],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/92"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":1,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/92\/revisions"}],"predecessor-version":[{"id":93,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/92\/revisions\/93"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=92"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=92"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}