¿Cómo validar XHTML con nokogiri?

He encontrado algunas publicaciones que aluden al hecho de que puedes validar XHTML contra su DTD usando la gema nokogiri. Aunque he logrado usarlo para analizar XHTML correctamente (buscando etiquetas 'a', etc.), me cuesta validar documentos.

Para mí, esto:

doc = Nokogiri::XML(Net::HTTP.get(URI.parse("http://www.w3.org")))
puts doc.validate

resulta en un montón de:

[
#<Nokogiri::XML::SyntaxError: No declaration for element html>,
#<Nokogiri::XML::SyntaxError: No declaration for attribute xmlns of element html>,
#<Nokogiri::XML::SyntaxError: No declaration for attribute lang of element html>,  
#<Nokogiri::XML::SyntaxError: No declaration for attribute lang of element html>,
#<Nokogiri::XML::SyntaxError: No declaration for element head>,
#<Nokogiri::XML::SyntaxError: No declaration for attribute profile of element head
[repeat for every tag in the document.]
]

Así que supongo que no es el enfoque correcto. Parece que no puedo encontrar ningún buen ejemplo. ¿Puede alguien sugerir lo que estoy haciendo mal?

Estoy ejecutando ruby ​​1.8.6 en Mac OSX 10.5.8. Nokogiri me dice:

nokogiri: 1.3.3
warnings: []

libxml: 
  compiled: 2.6.23
  loaded: 2.6.23
  binding: extension

Respuestas a la pregunta(2)

Su respuesta a la pregunta