On Apr 21, 2011, at 15:06 , David Lichteblau wrote:
Hi,
Quoting Marco Antoniotti (marcoxa@cs.nyu.edu):
here is the example on LWM:
what is LWM?
Lispworks Mac
CL-USER 17 > (cxml:parse #P"CellCycle-1991Tys-2.xml" (cxml:make-whitespace-normalizer (make-instance 'sax:default-handler)) :validate nil) NIL
CL-USER 18 > (with-open-file (f #P"CellCycle-1991Tys-2.xml" :direction :input) (cxml:parse f (cxml:make-whitespace-normalizer (make-instance 'sax:default-handler)) :validate nil))
Error: Binary operation READ-BYTE attempted on character stream #<STREAM::LATIN-1-FILE-STREAM /Users/marcoxa/Projects/Genomics/biolosyst/sbmlambda/tests/CellCycle-1991Tys-2.xml>. 1 (abort) Return to level 0. 2 Return to top loop level 0.
[...]
Parse an XML document from @var{input}, which can be a string, pathname, octet vector, or stream.
[...]
It appears that you need a 'xstream', but this is against the doc string content (and IMHO, against common sense).
Not an xstream, no (those are internal to cxml and would only be used very rarely by user code).
What you need is a _binary_ stream though (and the docstring could indeed be improved to say "octet vector, or octet stream" rather than just "octet vector, or stream".
In other words, add :element-type '(unsigned-byte 8) to the with-open-file.
Ok. But the file is not a binary file.
Marco
d.
-- Marco Antoniotti