"Someone should definitely find out why this is happening before we commit
all these changes. This is obviously pointing to something that's not
happy."

OK, without going in too deep, I have managed to get an optimised IRIX
Xerces-C library which appears to work fine with relative paths. The fix is
appears fairly stupid - even to me, but hey, it works!! ; )

The change required is in $XERCESCROOT/src/internal/XMLScanner.cpp ...

void XMLScanner::scanDocument(  const   XMLCh* const    systemId
                                , const bool            reuseValidator)
{
    //
    //  First we try to parse it as a URL. If that fails, we assume its
    //  a file and try it that way.
    //

#if defined(IRIX)
  XMLString::transcode(systemId);
#endif

.
.
.
}

assuming that this problem only affects IRIX.

I'm not too sure why or how this fixes the problem, but without the new line
(or possibly another similar line??) the optimisation under IRIX somehow
screws up the XMLCh* systemId, and hence the file cannot be parsed.

Pretty sure this isn't the best fix and probably not even an appropriate
fix, but it seems to work.


David.


Reply via email to