XIDL IPRT COM XPCOM WSDL gSOAP default JAX-WS boolean BOOL PRBool xsd:boolean bool Boolean octet uint8_t BYTE PRUint8 xsd:unsignedByte Short short int16_t SHORT PRInt16 xsd:short short Short (2) unsigned short uint16_t USHORT PRUint16 xsd:unsignedShort unsigned short Integer (2) long int32_t LONG PRInt32 xsd:int int Integer (2) unsigned long uint32_t ULONG PRUint32 xsd:unsignedInt unsigned int Long (2) long long int64_t LONG64 PRInt64 xsd:long long long Long (2) unsigned long long uint64_t ULONG64 PRUint64 xsd:unsignedLong unsigned long long BigInteger (2) double xsd:double double Double float xsd:float float Float wstring BSTR PRUnichar* xsd:string std::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.