Specifically I'm getting "The value NIL is not of type CXML::STREAM-NAME" in
the lambda function passed to find-if. For reference:
(defun zstream-push (new-xstream zstream)
(cond ((find-if (lambda (x)
(and (xstream-p x)
(eql (stream-name-entity-name (xstream-name x))
(stream-name-entity-name (xstream-name
new-xstream)))
(eql (stream-name-entity-kind (xstream-name x))
(stream-name-entity-kind (xstream-name
new-xstream)))))
(zstream-input-stack zstream))
(wf-error zstream "Infinite recursion.")))
(push new-xstream (zstream-input-stack zstream))
zstream)
FWIW, I'm parsing an XML string that looks like this:
<!DOCTYPE request [
<!ENTITY amp "&#38;"> ]>
<document>&</document>
The problem is that the 'x' argument -- which refers to the xstream for the
entire document -- has no name. It's NIL. It was generated via the call
chain PARSE-ROD > STRING->XSTREAM > MAKE-ROD-XSTREAM. string->xstream
doesn't supply a name to make-rod-xstream.
So, should it? Or should the lambda function be testing for a non-NIL name?
I'm guessing the latter but I'd rather not guess.
Donavon Keithley