XIDL IPRT COM XPCOM WSDL gSOAP default JAX-WS PHP boolean BOOL PRBool xsd:boolean bool Boolean boolean octet uint8_t BYTE PRUint8 xsd:unsignedByte Short integer short int16_t SHORT PRInt16 xsd:short short Short (2) integer unsigned short uint16_t USHORT PRUint16 xsd:unsignedShort unsigned short Integer (2) integer long int32_t LONG PRInt32 xsd:int int Integer (2) integer unsigned long uint32_t ULONG PRUint32 xsd:unsignedInt unsigned int Long (2) float (3) long long int64_t LONG64 PRInt64 xsd:long long long Long (2) float (3) unsigned long long uint64_t ULONG64 PRUint64 xsd:unsignedLong unsigned long long BigInteger (2) float (3) double xsd:double double Double float float xsd:float float Float float wstring BSTR PRUnichar* xsd:string std::string String string result xsd:unsignedInt(1) (undefined) uuid xsd:string(1) (undefined) (1) my definition (2) Java "Short" is signed 16-bit integer; since Java has no support for unsigned types, we need to use the next bigger class, which is Integer, for IPRT uint16_t. Similarly for the other integer types. (3) PHP does not support unsigned integers; Size of integer is platform-dependent, usual value of at least 32-bits signed. Use float for numbers greeted that signed 32-bit int