[XML-SIG] PyXML 0.8.3 problem on windows...

Radovan Chytracek Radovan.Chytracek at cern.ch
Sat Sep 27 13:48:16 EDT 2003


Hi,

         I have just recently installed PyXML 0.8.3 on my windows where
I have Python 2.2.3 and 2.3 in parallel. I have used for each version
the corresponding PyXML binary installer. I have observed a problem
which did not happen before, as I was using default SAX parser coming
with Python distribution which I think is non-validating one.

I plan to use SAX2 features so I installed PyXML which claims it has
supports SAX and even XML validation in xmlproc parser. Good.

The problem. In one of my test XML files I have a bogus DTD system id
which is handled in our C++ framework by using EntityResolver.
This seems to make PyXML SAX parser die with the following stack trace:

Traceback (most recent call last):
  File "RlsLoadXml.py", line 52, in ?
    xmldata = RlsLoadXml( dataFile )
  File "RlsLoadXml.py", line 8, in RlsLoadXml
    cl.load()
  File "RlsCatalogLoader.py", line 106, in load
    self.docfilter.parse( self.input_file )
  File "C:\Python22\Lib\site-packages\_xmlplus\sax\saxutils.py", line
441, in parse
    self._parent.parse(source)
  File "C:\Python22\Lib\site-packages\_xmlplus\sax\expatreader.py", line
109, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "C:\Python22\Lib\site-packages\_xmlplus\sax\xmlreader.py", line
123, in parse
    self.feed(buffer)
  File "C:\Python22\Lib\site-packages\_xmlplus\sax\expatreader.py", line
216, in feed
    self._parser.Parse(data, isFinal)
  File "C:\Python22\Lib\site-packages\_xmlplus\sax\expatreader.py", line
395, in external_entity_ref
    self._source.getSystemId() or
  File "C:\Python22\Lib\site-packages\_xmlplus\sax\saxutils.py", line
507, in prepare_input_source
    if source.getByteStream() is None:
AttributeError: 'NoneType' object has no attribute 'getByteStream'

I don't know what parser gets created by calling xml.sax.make_parser()
call after PyXML is installed by I am sure if it's validating parser it
should report that unknown or invalid DTD system id has been found and
stop parsing with some reasonable error message. This stack trace was of
no use as I had to spent quite some time to figure out what's the
problem.

If I uninstall PyXML 0.8.3 from my system all is running OK as I
apparently get back to the non-validating parser which does not care
much about crazy DTD system id.

Anybody else is having  asimilar problem?

           Radovan




More information about the XML-SIG mailing list