# Salve a tutti

**URL:** <https://www.ruby-forum.com/t/salve-a-tutti/95990>\
**Category:** IT\
**Created:** [June 21, 2006, 10:42pm UTC](https://www.ruby-forum.com/t/salve-a-tutti/95990 "2006-06-21T22:42:18Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![gendag](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/f04885/32.png) [@gendag](https://www.ruby-forum.com/u/gendag)\
**Post date:** [June 21, 2006, 10:42pm UTC](https://www.ruby-forum.com/t/salve-a-tutti/95990/1 "2006-06-21T22:42:18Z")

</div>

Salve a tutti,  
e’ la prima volta che scrivo a questa mailing list quindi mi sembrava  
educato presentarmi.  
Sono uno studente bolognese di informatica che si e’ innamorato di ruby  
lo scorso  
dicembre stavo cercando un linguaggio di scripting OO per creare uno  
script che eseguisse il backup di alcuni mie progetti e la mia scelta  
e’ ricaduta su Ruby. Avevo provato in precedenza a studiare Perl senza  
nessun successo (sara’ il linguaggio che e’ incasinato, sara’ che la  
documentazione e’ incasinata, boh!). Ma quando ho iniziato a leggere  
Ruby me ne sono innamorato, e’ facile da imparare, divertente, veloce,  
semplice e potente! 🙂  
Insomma sono soddisfatto di averlo conosciuto. Quando avro’ tempo vorrei  
dedicarmi anche allo studio di Rails, appena mi libero dagli impegni  
universitari!

Ok, terminate le presentazioni, vi espondo un mio dubbio: ho la  
necessita’ di fare il parse e di validare (con DTD) un documento XML.  
Conosco la libreria Rexml, ma non valida. Quindi mi sono diretto su  
libxml e qui sorge il mio problema: nella documentazione c’e’ scritto  
che per validare basta usare il metodo validate() di un oggetto  
XML::Document, passandogli come argomento un oggetto di tipo XML::Dtd.  
Quindi io ho scritto:

require ‘xml/libxml’  
…

d = XML::Document.file(filename)  
d.validate( XML::Dtd.new(DTD\_FILE) )  
…

dove DTD\_FILE e’ una costante stringa contente il DTD. L’errore che mi  
da e’:

uninitialized constant XML::Dtd (NameError)

Ho provato anche con XML::DTD, ma mi compare lo stesso errore.  
Dov’e’ che sto sbagliando?

Grazie mille a tutti & ciao!

Gendag

---

<div class="post-metadata">

**Author:** ![gendag](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/f04885/32.png) [@gendag](https://www.ruby-forum.com/u/gendag)\
**Post date:** [June 22, 2006, 2:57am UTC](https://www.ruby-forum.com/t/salve-a-tutti/95990/2 "2006-06-22T02:57:12Z")

</div>

Gendag wrote:

> uninitialized constant XML::Dtd (NameError)
> 
> Ho provato anche con XML::DTD, ma mi compare lo stesso errore.  
> Dov’e’ che sto sbagliando?

Io ho provato a creare un Dtd in irb con il seguente codice:

require ‘rubygems’  
require ‘xml/libxml’ # o anche require ‘libxml’

XML::Dtd.new(DTD\_FILE)

e’ non mi ha dato nessuna eccezione.

Di solito un NameError viene fuori quando cerchi di accedere ad una  
costante non definita.

libxml-ruby lo hai installato da sorgente o precompilato?

io ho provato il gem (che puoi provare con un semplice gem install :-))

L’ultima versione disponibile come gem e’ la 0.3.8

> Grazie mille a tutti & ciao!

spero che in qualche modo possano esserti utile queste 2 o 3 mini-info  
🙂  
in bocca al lupo ed happy hacking,  
rpl

---

<div class="post-metadata">

**Author:** ![gendag](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/f04885/32.png) [@gendag](https://www.ruby-forum.com/u/gendag)\
**Post date:** [June 22, 2006, 2:25pm UTC](https://www.ruby-forum.com/t/salve-a-tutti/95990/3 "2006-06-22T14:25:54Z")

</div>

On 22/06/06(Thu) 02:54, Ripley wrote:

> costante non definita.
> 
> libxml-ruby lo hai installato da sorgente o precompilato?

Ho installato il pacchetto Ubuntu (libxml-ruby1.8) versione 0.3.4-4.

> io ho provato il gem (che puoi provare con un semplice gem install :-))

Ho provato anche io, ho disinstllato il pacchetto .deb e ho eseguito  
il comando: “gem install libxml-ruby”, ma mi da il seguente errore:

Attempting local installation of ‘libxml-ruby’  
Local gem file not found: libxml-ruby\*.gem  
Attempting remote installation of ‘libxml-ruby’  
Building native extensions. This could take a while…  
\*\*\* extconf.rb failed \*\*\*  
Could not create Makefile due to some reason, probably lack of  
necessary libraries and/or headers. Check the mkmf.log file for more  
details. You may need configuration options.

Provided configuration options:  
–with-opt-dir  
–without-opt-dir  
–with-opt-include  
–without-opt-include=${opt-dir}/include  
–with-opt-lib  
–without-opt-lib=${opt-dir}/lib  
–with-make-prog  
–without-make-prog  
–srcdir=.  
–curdir  
–ruby=/usr/bin/ruby1.8  
–with-iconv-dir  
–without-iconv-dir  
–with-iconv-include  
–without-iconv-include=${iconv-dir}/include  
–with-iconv-lib  
–without-iconv-lib=${iconv-dir}/lib  
–with-xml2-dir  
–without-xml2-dir  
–with-xml2-include  
–without-xml2-include=${xml2-dir}/include  
–with-xml2-lib  
–without-xml2-lib=${xml2-dir}/lib  
–with-zlib-dir  
–without-zlib-dir  
–with-zlib-include  
–without-zlib-include=${zlib-dir}/include  
–with-zlib-lib  
–without-zlib-lib=${zlib-dir}/lib  
–with-socketlib  
–without-socketlib  
–with-nsllib  
–without-nsllib  
–with-mlib  
–without-mlib  
–with-mlib  
–without-mlib  
–with-zlib  
–without-zlib  
ERROR: While executing gem … (RuntimeError)  
ERROR: Failed to build gem native extension.  
Gem files will remain installed in  
/usr/lib/ruby/gems/1.8/gems/libxml-ruby-0.3.8 for inspection.  
ruby extconf.rb install libxml-ruby\nchecking for socket() in  
-lsocket… no  
checking for gethostbyname() in -lnsl… yes  
checking for atan() in -lm… no  
checking for atan() in -lm… yes  
checking for inflate() in -lz… no  
extconf failure: need zlib

Results logged to  
/usr/lib/ruby/gems/1.8/gems/libxml-ruby-0.3.8/ext/xml/gem\_make.out

Inizialmente mi dava un altro errore, perche’ non avevo installato  
mkmf.rb, dopo averlo installato, questo e’ l’errore che mi compare.  
Dalla riga “extconf failure: need zlib” sembrerebbe che mi manchi la  
zlib, cosi’ lo installata (libzlib-ruby\_0.6.0+ruby1.8.2-1\_all.deb), ma  
l’errore rimane comunque quello ☹

> spero che in qualche modo possano esserti utile queste 2 o 3 mini-info 🙂

Si, lo sei stato 🙂

> in bocca al lupo ed happy hacking,  
> rpl

grazie mille e anche a te!

Gendag

---

<div class="post-metadata">

**Author:** ![gendag](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/f04885/32.png) [@gendag](https://www.ruby-forum.com/u/gendag)\
**Post date:** [June 22, 2006, 2:42pm UTC](https://www.ruby-forum.com/t/salve-a-tutti/95990/4 "2006-06-22T14:42:15Z")

</div>

Gendag wrote:

> Inizialmente mi dava un altro errore, perche’ non avevo installato  
> mkmf.rb, dopo averlo installato, questo e’ l’errore che mi compare.  
> Dalla riga “extconf failure: need zlib” sembrerebbe che mi manchi la  
> zlib, cosi’ lo installata (libzlib-ruby\_0.6.0+ruby1.8.2-1\_all.deb), ma  
> l’errore rimane comunque quello ☹

Più che il wrapper zlib di ruby, credo ti manchi il pacchetto di  
sviluppo di zlib, zlib1g-dev, prova installando quello.

Nico

---

<div class="post-metadata">

**Author:** ![gendag](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/f04885/32.png) [@gendag](https://www.ruby-forum.com/u/gendag)\
**Post date:** [June 22, 2006, 7:20pm UTC](https://www.ruby-forum.com/t/salve-a-tutti/95990/5 "2006-06-22T19:20:22Z")

</div>

On 22/06/06(Thu) 14:43, Domenico Delle S. wrote:

> Più che il wrapper zlib di ruby, credo ti manchi il pacchetto di  
> sviluppo di zlib, zlib1g-dev, prova installando quello.

grazie mille anche a te, effettivamente mi mancavano i pacchetti  
-dev di zlib e libxml2. Ora ho risolto e ho risolto anche il problema  
della classe DTD.

grazie a tutti per i vostri consigli.

ciao!

Gendag

---

<div class="post-metadata">

**Author:** ![gendag](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/f04885/32.png) [@gendag](https://www.ruby-forum.com/u/gendag)\
**Post date:** [June 23, 2006, 9:44am UTC](https://www.ruby-forum.com/t/salve-a-tutti/95990/6 "2006-06-23T09:44:28Z")

</div>

On Thu, 22 Jun 2006 19:19:23 +0200, Gendag wrote:

> Ora ho risolto e ho risolto anche il problema  
> della classe DTD.

Deduco quindi che si riesca a validare, giusto?
