Newsgroup: it.comp.lang.c
Titolo: NunniMCAX: libreria C XML parser Open Source

Ciao a tutti.
Ho sviluppato e appena cominciato a distribuire con licenza
GNU LGPL una (minima) libreria C per il parsing di documenti
XML, NunniMCAX.
http://sourceforge.net/projects/nunnimcax/
Come detto si tratta di una libreria *minima*, in quanto
non fa' validazione, ne' espansione di entita'. In compenso
fa' del proprio meglio per verificare che l'XML sia well-formed.
NunniMCAX, nella sua minima API, ricorda SAX, a eventi
e sequenziale. Quindi se si conosce SAX, l'uso di questa
libreria dovrebbe essere diretto. Anche nel caso in
cui non si conosca SAX, sono convinto che guardando
l'esempio distribuito con il sorgente chiarisca ogni dubbio.
Questa libreria vorrebbe essere utile in ambienti con
risorse limitate (embedded, mobile, etc..) o quando le
eccezionali potenzialita' di parser come xerces non sono
necessarie.
Contributi, correzioni, bug report, richiesta di nuove
funzionalita' o semplicemente la storia di un utente
soddisfatto, sono benvenuti.
NunniMCAX e' stato sviluppato usando un generatore di FSM
(Finite State Machine), NunniFSMGen.
http://nunnifsmgen.nunnisoft.ch
Ciao.
-- 
                Roberto Nunnari -software engineer-
                     mailto:
ro...@nunnisoft.ch
 
http://www.nunnisoft.ch
   Residenza Boschetto 12           tel/fax: 
+41-91-6046511
   6935 Bosco Luganese        """    mobile: 
+41-76-3208561
   Switzerland               (o o)
========================oOO==(_)==OOo========================

 XML, NunniMCAX.
Rispetta il topic di questo gruppo, per cortesia.

 necessarie.
 
  Molto interessante, credo proprio che gli getterò un occhio.
  Appena trovo il tempo di provarla... ti faccio sapere le 
  mie impressioni.
  P.  
-- 
Unix/Linux Software Development & Tools  
 
www.lulli.net
 

 
Ok grazie. Lo apprezzerei.
Vorrei solo fare una nota che non e' ancora presente nella
distribuzione e nemmeno nel sito.
Le funzioni di callback che ricevono dei parametri
   int startElement( const char *tagname, struct NunniHashtable *args );
   int characters( char ch[], int start, int length );
   int endElement( const char *tagname );
sono da usare con attenzione. Infatti i parametri sono passati per
riferimento e il loro valore e' garantito valido solo durante
l'esecuzione della funzione stessa. Se dovesse essere necessario
la consultazione di tali parametri anche dopo il return della
funzione, e' necessario copiare i contenuti in una altra variabile,
eseguendo una copia profonda (non semplicemente i riferimenti).
Infatti il parser, terminata la chiamata alla funzione di
callback, riutilizza le stesse variabili, o addirittura libera
parte della memoria (nel caso di args) con free().
Ciao.
-- 
                Roberto Nunnari -software engineer-
                     mailto:
ro...@nunnisoft.ch
   Residenza Boschetto 12           tel/fax: 
+41-91-6046511
   6935 Bosco Luganese        """    mobile: 
+41-76-3208561
   Switzerland               (o o)
========================oOO==(_)==OOo========================
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 100,000 Newsgroups - 19 Different Servers! =-----