No, we definitely wouldn't take that fix :-) No conditional code is the
rule. This problems is likely not the real problem, but just a side effect
of whatever is really going wrong. I'm not sure what it would be, but a
likely culprit might be the transcoder being used. You might want to see
what the resulting transcoding string looks like, which might give a hint
as to what's going wrong.
----------------------------------------
Dean Roddey
Software Weenie
IBM Center for Java Technology - Silicon Valley
[EMAIL PROTECTED]
"David Nickerson" <[EMAIL PROTECTED]> on 04/04/2000 08:47:28 PM
Please respond to [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
cc:
Subject: Re: IRIX changes ...
"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.