axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <>
Subject Re: Arrays
Date Tue, 20 Jan 2004 13:02:35 GMT
Hi Roland,

There are people using Axis C++ to host web services written in pure C.
Also the client applications in pure C. But the API and the method we have
provided in Axis release 1.0 is not that good because the web service or
client application developer anyway need a C++ compiler because the
wrappers generated by the WSDL2WS tool are in C++.

So we have done major modifications to the APIs and code generation and
wish to use that APIs in next release. The code in CVS HEAD is also
improved to support document/literal style web services.

You can write web services or client applications in pure C and you only
need a C++ compiler to compile Axis (If you download and install the Axis
binay you dont want a C++ compiler).

> Hi Susantha
> Your project is called "Axis C++ (Apache Axis SOAP Engine in C++)", not
> "Axis C". So I do not understand why you want to throw out the STL. It
> belongs to the C++ standard. And as long as you are using Xerces you
> always will need a C++ compiler. Therfore the compiler is not an
> argument.

In the current development we are using Expat for XML parsing because we
found that Expat performs better and it fits the Axis C++ architecture.

We can support Xerces and libXML. If you are willing to support Xerces
and/or libXML I am willing to help :) .

Also we expect to start writing a XML pull parser to be used in Axis and
the expectation is to do that in pure C for performance reasons.



> I think it would be better to support unicode than "C".
> Roland
> Susantha Kumara wrote:
>>Hi Roland,
>>The language binding we have for Axis is common for both C and C++. so
>> mapping of xsd types to language types is base on C types now. Also we
>> expect not to use stl::string for xsd:string from next release. The
>> code in CVS HEAD which goes to next release use xsd__string for
>> xsd:string (typedef to char*).
>>We soon publish our draft language bindings. Following is the cut and
>> paste of the type mapping.
>>Simple Type			C  Type
>>-----------			-------
>>xsd:string			typedef char * xsd__string;
>>xsd:integer			typedef int xsd__integer;
>>xsd:int			typedef int xsd__int;
>>xsd:long			typedef long xsd__long;
>>xsd:short			typedef short xsd__short;
>>xsd:decimal			typedef double xsd__decimal;
>>xsd:float			typedef float xsd__float;
>>xsd:double			typedef double xsd__double;
>>xsd:boolean			typedef enum { false_, true_ } xsd__boolean;
>>xsd:byte			typedef unsigned char xsd__byte;
>>xsd:QName			typedef char * xsd__QName;
>>xsd:dateTime		typedef time_t xsd__dateTime;
>>xsd::unsignedByte		typedef unsigned char xsd__unsignedByte;
>>xsd::unsignedInt		typedef unsigned int xsd__unsignedInt;
>>xsd::unsignedLong		typedef unsigned long xsd__unsignedLong;
>>xsd::unsignedShort	typedef unsigned short xsd__unsignedShort;
>>xsd::base64Binary		typedef struct { xsd__unsignedByte * __ptr; xsd__int
>> __size;} xsd__base64Binary;
>>xsd::hexBinary		typedef struct{ xsd__unsignedByte * __ptr; xsd__int
>> __size;} xsd__hexBinary;
>>xsd::anyURI			typedef char * xsd__anyURI;
>>However we need to discuss about supporting stl.

View raw message