> -----Original Message-----
> From: Andy Heninger [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, January 11, 2000 7:52 PM
> To: [EMAIL PROTECTED]
> Subject: Re: xalan-c Problem with Xerces initialization
> 
> 
> Rob Weir comments
> 
> >
> > Having a static foo("hello world")
> > seems innocuous enough.  Any other string class would allow 
> it.  Since
> > DOMString is the way strings are exposed by the Xalan API, 
> users of Xalan
> > will be programming with DOMString.  How do we prevent them 
> from using
> > static DOMString?  Of course, we know why this is bad.  But will the
> > average user know this?
> 
> I don't know a good answer to this problem.  An earlier 
> version of our code
> did attempt to support this, and over and over we had people 
> who had botched
> the installation of the transcoding service, which caused an 
> error during
> static construction, which there was no good way to report.  
> And no way for
> applications to catch any exception thrown.  (The static 
> foo("hello world")
> constructor does need to transcode the string from (char *) 
> in the system
> default code page to Unicode.)
> 

The simple answer is to take transcode() out of DOMString.
[Take out print() and println() while you're at it.] A string
class should just be a container for char or wchar_t. Transcoding
and printing are functions to be applied to containers.
You might want to consider moving
to wstring in place of DOMString. (You knew that was coming ;-))


> 
> >
> > In any case, we're going to bypass the whole issue in our 
> code by using
> > static wide-character literal strings instead of DOMString's.  This
> depends
> > on XMLCh being the same as wchar_t, which I understand is 
> in the works.
> >
> 
> Yes, this change is almost there.  It's in the set of stuff 
> that we are
> currently checking out; once everything appears to be stable 
> on all the
> platforms, it'll go back into CVS.  XMLCh will be settable to 
> either wchar_t
> or unsigned short by a build option, with wchar_t being the default.
> 
> It does turn out, however, that there are some portability 
> problems with
> wchar_t literal strings.  On some platforms (HP), they 
> apparently do no
> always generate Unicode values, but can generate something 
> that depends on
> the current locale.  I don't fully understand this yet, but 
> we are trying to
> better understand the problem.
> 
>   -- Andy
> 
> 

        -joe

Reply via email to