You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xerces.apache.org by David Webber <da...@musical.demon.co.uk> on 2010/01/05 19:49:00 UTC

XMLCh class

Am I right in thinking that in a program purely for a Windows XML/Vista/7 
platform, which uses all character strings in the native UTF-16 format,  I 
can interchange XMLCh and wchar_t with no worries?
For example

XMLCh string[] = L"This is a standard unicode string";

And then when a Xerces API function requires an argument of type  const 
XMLCh * , I can just pass it this string?

In other words are all the XMLString routines just there to give platform 
independence (in particular on platforms for which UTF-16 is not native)?

The reason I ask is that it would be nice to be able to use the c runtime 
library for string manipulation and/or MFC and STL string classes.   (I have 
no intention of going beyond the Windows environment.)

Dave
David Webber
Mozart Music Software
http://www.mozart.co.uk
For discussion and support see
http://www.mozart.co.uk/mozartists/mailinglist.htm

 


RE: XMLCh class

Posted by John Lilley <jl...@datalever.com>.
In my experience that is true.  We were able to get away with it before moving to Linux.
john


-----Original Message-----
From: David Webber [mailto:dave@musical.demon.co.uk] 
Sent: Tuesday, January 05, 2010 11:49 AM
To: c-users@xerces.apache.org
Subject: XMLCh class

Am I right in thinking that in a program purely for a Windows XML/Vista/7 
platform, which uses all character strings in the native UTF-16 format,  I 
can interchange XMLCh and wchar_t with no worries?
For example

XMLCh string[] = L"This is a standard unicode string";

And then when a Xerces API function requires an argument of type  const 
XMLCh * , I can just pass it this string?

In other words are all the XMLString routines just there to give platform 
independence (in particular on platforms for which UTF-16 is not native)?

The reason I ask is that it would be nice to be able to use the c runtime 
library for string manipulation and/or MFC and STL string classes.   (I have 
no intention of going beyond the Windows environment.)

Dave
David Webber
Mozart Music Software
http://www.mozart.co.uk
For discussion and support see
http://www.mozart.co.uk/mozartists/mailinglist.htm

 


Re: XMLCh class

Posted by David Webber <da...@musical.demon.co.uk>.
From: "David Bertoni" <db...@apache.org>

>> XMLCh string[] = L"This is a standard unicode string";
> Yes, on Windows, XMLCh is a typedef for wchar_t. It's not a class on any 
> platform.
>...

Thanks.

> Then you should be fine, but you might want to be consistent and use XMLCh 
> and XMLString everywhere, just in case.

Yes - I like to be consistent too.    I would always pass an XMLCh * (rather 
than a wchar_t *) to a function which had that as a parameter, but in 
particular for example

const XMLCh myString[] = L"This is my string";

seems to be a much simpler way to define a constant UTF-16 string than using 
XMLString::transcode()  and then having to free the memory later [and, 
though I can guess, I don't really understand 100% what it's doing].

Anyway thanks again for your assistance, I'm feeling I'm starting to get to 
know Xerces a bit now.  [Enough that I've given up on MSXML!]

Dave
David Webber
Mozart Music Software
http://www.mozart.co.uk
For discussion and support see
http://www.mozart.co.uk/mozartists/mailinglist.htm 


Re: XMLCh class

Posted by David Bertoni <db...@apache.org>.
On 1/5/2010 10:49 AM, David Webber wrote:
> Am I right in thinking that in a program purely for a Windows
> XML/Vista/7 platform, which uses all character strings in the native
> UTF-16 format, I can interchange XMLCh and wchar_t with no worries?
> For example
>
> XMLCh string[] = L"This is a standard unicode string";
Yes, on Windows, XMLCh is a typedef for wchar_t. It's not a class on any 
platform.

>
> And then when a Xerces API function requires an argument of type const
> XMLCh * , I can just pass it this string?
>
> In other words are all the XMLString routines just there to give
> platform independence (in particular on platforms for which UTF-16 is
> not native)?
For many of the functions, that's the case. But there are XMLString 
functions that have no analog in the ANSI C or C++ libraries.

>
> The reason I ask is that it would be nice to be able to use the c
> runtime library for string manipulation and/or MFC and STL string
> classes. (I have no intention of going beyond the Windows environment.)
Then you should be fine, but you might want to be consistent and use 
XMLCh and XMLString everywhere, just in case.

Dave