WebSphere Web Services Client for C++, Version 1.0.1 オペレーティング・システム: Linux, Windows

複合型と複合型の配列

Web サービスで複合型を使用する場合、単純型の場合と同じ規則が適用されます。

複合型

次の例では、複合型を使用して WSDL から生成されるクラスを示しています。この例で示すように、複合型は set および get メソッドの使用時にデータのシャロー・コピーを取るだけです。

class STORAGE_CLASS_INFO ComplexType
{
public:
class xsd__string Message;
class xsd__int MessageSize;
xsd__string getMessage();
void setMessage( xsd__string InValue);
xsd__int getMessageSize();
void setMessageSize( xsd__int InValue);

クライアントは、オブジェクトを指すポインターを使用するときに、ポインターがコピーされるのみで、複製されないことを覚えておく必要があります。例えば、複合型にストリングが含まれている場合、クライアントがストリングの内容を設定するためには、ローカル・ストリングを作成し、複合オブジェクトで set メソッドを使用して、そのストリングをオブジェクトにコピーします。

次の例では、複合型の使用時に適用される制約事項を示します。

xsd__int iStringLength = strlen( “Hello World”);
xsd_string myNewString = new char[iStringLength + 1];
strcpy( myNewString, “Hello World”);
myComplexType.setMessage( myNewString);
delete myNewString; // Do this and myComplexType.Message will be left pointing to
// invalid memory.

代替:

delete myComplexType; // Do this and myNewMessage will be pointing to invalid
memory.

メソッド呼び出しで使用される場合、複合型のパラメーターに単純型と同じ規則が適用されます。以下にこの規則を示します。

複合型の配列

WSDL で配列内で使用する複合型を記述すると、WSDL2Ws ツールにより「_Array」というサフィックスが付いた複合名の型を使用して、対応する配列オブジェクトが生成されます。


Reference topic

ご利用条件 | フィードバック (英語のみ)

Timestamp icon最終更新: 12 Jun 2006
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)