[XML-SIG] Using PyExpat.py

Fredrik Lundh fredrik@effbot.org
Tue, 20 Feb 2001 00:38:04 +0100


Uche Ogbuji wrote:
> > > I can't find out whether this has been settled. Did you propose to
> > > drop the support for URLs in the API, or the one for local files.
> > 
> > I'd like to drop support for URLs; I don't think the typical computer
> > is sufficiently networked to make this work well.
> 
> In this case, the typical computer user will have a great deal of trouble 
> using any XML application in any language.  Almost all of them use URIs as 
> basis, and for good reason.  Special support for local files are almost 
> universally a mere convenience.
> 
> Most XML processing specifications mandate that the URI of the XML entity that 
> contains an infoset node is used as the basis for further processing.  To me, 
> this argues strongly for dropping local files rather than URIs if we must 
> choose.  Some XML specs would be very difficult to implement properly if the 
> low-level tools became file-system-only readers.

is the code Guido quoted taken from a utility function (e.g. a standard
input handler), or is it part of the core library:

        if os.path.isfile(sysid):
            basehead = os.path.split(os.path.normpath(base))[0]
            source.setSystemId(os.path.join(basehead, sysid))
            f = open(sysid, "rb")
        else:
            source.setSystemId(urlparse.urljoin(base, sysid))
            f = urllib.urlopen(source.getSystemId())

if the latter, I hope you realize that this can be abused in all sorts of
interesting ways...

Cheers /F