Message 81111 - Python tracker (original) (raw)
I just discovered another really fun wrinkle in this.
Let's say I want to have my entity resolver return a reference to my local copy of a DTD. I write:
source = xml.sax.InputSource()
source.setPublicId(publicId)
source.setSystemId(systemId)
source.setCharacterStream(file(path_to_local_copy))
return source
This will appear to work.
However, the parser will still silently fetch the DTD over the network!
I needed to call source.setByteStream()--character streams are silently
ignored.
I'd never have noticed this if I hadn't used strace on my process and noticed a slew of recvfrom() calls that shouldn't have been there.