[Zope] Error Type: ExpatError

Fred Drake fdrake at gmail.com
Wed Oct 12 10:19:39 EDT 2005


On 10/12/05, Alan Milligan <alan at balclutha.org> wrote:
> I discovered this a couple of years ago wondering why RedHat's up2date
> XML-RPC client didn't wrap download files in base64 tags.  They've
> actually done some strange stuff in this client to use normal http calls
> to download RPM packages.

Silly RedHat.  Imagine using HTTP to transfer files...

> - From memory, the c expat library news up an 8192 char buffer to unpack
> *every* tag contents.  If you extend this size, performance seems to
> degrade massively...

Expat does have a buffer that provides some "context" for the current
event being reported, and the size of that buffer is defined by a
compile-time definition.  It should not be made too large, certainly. 
But it's not the way to retrieve normal document data from the parser,
either.  It's really only intended to do things like allow an
application to retrieve character references when character data is
reported, or to see what a tag actually looks like (we use this for
page templates to help make minimal changes when we don't actually
need to process TAL/METAL/I18N attributes on an element).

Retrieving document text should always be done using the character
data handler and a buffer to ensure the entire data within an element
is collected, since multiple callbacks will be made quite often.


  -Fred

--
Fred L. Drake, Jr.    <fdrake at gmail.com>
"Society attacks early, when the individual is helpless." --B.F. Skinner


More information about the Zope mailing list