I test che ho fatto, a seguito del malfunzionamento riscontrato, sono inserite in questa discussione.
Per le prove ho anche usato il codice che ho trovato nei sorgenti di gambas3 (#4838), in particolare la lettura del semplice file trovato sempre nei sorgenti test.xml. Già il test ha riportato i problemi che ho descritto, ovviamente usando la libreria gb.xml.
Una volta modificato l'elenco delle librerie nel progetto, passando da gb.xml a gb.libxml, il tutto ha ripreso a funzionare. Questo vuol dire che in realtà esistono differenze tra le due librerie, e in particolare con le classi XmlReader e XmlWriter.
Per riassumere i test con la libreria gb.xml, e le anomalie riscontrate:
a) la classe XmlReader sembra leggere il file, senza dare errori, ma poi nel loop di lettura non rileva nulla. Solo una cosa ho notato, ovvero che Read() ritorna il valore di 7, che corrisponde al fine documento, ovvero ad eof.
b) la classe XmlWriter aggiunge spazi indesiderati nel contenuto dei tag (o elementi), formattando inoltre il file in maniera completamente diversa da come mi aspettavo, ovvero inserisce il carattere di LF dopo lo StartElement, dopo il valore dell'elemento (aggiungendo spazi in testa e in coda), e dopo lo EndElement.
Queste anomalie non accadono con le stesse classi contenute in gb.libxml !
I test sono stati effettuati sia utilizzando il codice di esempio e il file xml contenuti nei sorgenti di Gambas3 (build #4838), sia utilizzando il codice che utilizzo in pgDesigner3. Lo stesso codice e la stessa logica è stata adottata in tutte le release di pgDesigner (1, 2 e 3), e dopo vari studi per trovare il miglior modo per utilizzare la libreria.
Devo però dire, e credo di averlo già accennato, che il cambiamento di nome di una libreria, a prescindere se il codice di alcune classi sia uguale o meno, può portare a svariate conseguenza, com'è appunto e puntualmente accaduto. Questo è ovviamente un mio pensiero, ma è adottato in tutti i linguaggi conosciuti. Al massimo, se una libreria và ad implementare in todo le funzionalità di una esistente, aggiungendo magari ulteriori proprietà, credo sia più opportuno renderla obsoleta, segnalando la cosa a caratteri cubitali...
Questo è ovviamente un mio pensiero, ma credo sia il caso di prenderlo in considerazione, onde evitare problemi a chi segue questo bel linguaggio che è Gambas!