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