Ciao a tutti, per apprendere le interessanti possibilità offerti dall'XMLBeans ho seguito per filo e per segno l'ottima guida pubblicata da Luca Santaniello che trovate qui.
Ho solamente riscontrato dei problemi anche solo provando ad applicarla, ma forse la colpa è mia che non sono riuscito a capire bene
Ho salvato il file "iscritti.xsd" così come pubblicato sul sito, e poi ho eseguito "scomp iscritti.xsd –out iscritti.jar -src iscritti" aggiungendo quindi come opzione -src per potermi salvare i file sorgenti della libreria che viene ad essere creata, in modo da poter capire quali metodi ci sono e quali posso quindi utilizzare...
In maniera molto strana ho riscontrato che alcuni dei metodi che vengono successivamente utilizzati nel Listato 3, per esempio
codice:
//salviamo il file sul disco
doc.save(new File ("C:/test.xml"), opts);
che si trova alla fine, il metodo save della classe IscrittiDocument.java non è definito all'interno dei sorgenti generati contemporaneamente alla creazione del file .jar
Aiutandomi con Eclipse sono riuscito a capire che save è un metodo di XMLTokenSource, però sinceramente non capisco perchè un'istanza di IscrittiDocument possa usare i metodi di XMLTokenSource, forse perchè è una classe che viene estesa? :master:
Infine, provando a dare in pasto ad Eclipse l'intero Scrittura.java, se a tempo statico non viene riscontrato nessun tipo di errore, anzi il codice risulta perfetto, una volta eseguito spuntano fuori una tonnellata di errori, quali
codice:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
at java.lang.Class.getMethod0(Class.java:2642)
at java.lang.Class.getMethod(Class.java:1579)
at org.apache.xmlbeans.XmlBeans.buildMethod(XmlBeans.java:174)
at org.apache.xmlbeans.XmlBeans.buildNodeMethod(XmlBeans.java:195)
at org.apache.xmlbeans.XmlBeans.buildNodeToCursorMethod(XmlBeans.java:232)
at org.apache.xmlbeans.XmlBeans.<clinit>(XmlBeans.java:131)
at org.sportfantasy.IscrittiDocument$Factory.newInstance(Unknown Source)
at xml.Scrittura.main(Scrittura.java:17)
Grazie anticipatamente per chi potrà spiegarmi dove sbaglio