Hi,

Hmm, I think the "NULL" comes from the fact that you only use "SYSTEM",
without providing an ID. libxml2 printf()'s the ID here.

So, well, it can't find it on your system. Have you tried something like

"file://C:/Desarrollo/pythontests/lxml/foo.dtd"

?

And: have you made sure the file is actually there?

All the files are in the right place, so that is not the problem.
I tried "file://C:/Desarrollo/pythontests/lxml/foo.dtd", bang, same failure.
But "C:/Desarrollo/pythontests/lxml/foo.dtd" does work!.
"foo.dtd" works too (foo.xml is in the same location).

I'm wondering why, in the unsuccessful cases, the resolver receives both url and id set to None, perhaps the parser doesn't like backward slashes.
Any idea?