Re: [xml-dev] Internal entities removed from XML?

From
Rich Salz <>
To
Miles Sabin <>
Date
2002-12-20T12:04:04Z
ID
<>
Thread
Re: [xml-dev] Internal entities removed from XML?
> Except that it doesn't show that, because every entity expansion
> involves copying the following text forward.

Since you have to look at the char, copying it back would go through the
mem cache.  I figured that was cheaper than saying (if buf != src) first.
Of course, the whole routine should be optimized by putting
   if (memchr(buff, '&', size) == NULL) return size;

> I'd be astonished if that
> wins compared with delivering expansions SAX-style. I'd even be
> surprised if it wins against non-in-place expansion to a separate
> buffer (assuming the copy was optimized away for the no entity refs
> case).

I don't know what to say here.  Have you done much "to the metal" coding
in C/C++ kinds of things?  Imagine an embedded device, for example:  no
need for multiple buffers.  Imagine streaming the output -- no need for
multiple system calls, computing total length, etc.  The input is all in
one buffer -- how *can* it be easier and more efficient to split it up?
Surely at times you wished SAX would guarantee one call/chardata?  But
even if not, don't think of SAX.  Think of smaller faster things.

Hope this helps.
	/r$