Win32 API 日本語リファレンス
ホームNetworking.WindowsWebServices › WS_TYPE

WS_TYPE

列挙型
基底型i4

メンバー 35

名前10進16進説明
WS_BOOL_TYPE00x0

BOOL 値をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_BOOL_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_INT8_TYPE10x1

符号付き 8 ビット整数 (char) をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_INT8_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_INT16_TYPE20x2

符号付き 16 ビット整数 (short) をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_INT16_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_INT32_TYPE30x3

符号付き 32 ビット整数をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_INT32_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_INT64_TYPE40x4

符号付き 64 ビット整数をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_INT64_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_UINT8_TYPE50x5

符号なし 8 ビット整数 (BYTE) をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_UINT8_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_UINT16_TYPE60x6

符号なし 16 ビット整数をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_UINT16_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_UINT32_TYPE70x7

符号なし 32 ビット整数をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_UINT32_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_UINT64_TYPE80x8

符号なし 64 ビット整数をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_UINT64_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_FLOAT_TYPE90x9

float をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_FLOAT_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_DOUBLE_TYPE100xA

double をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_DOUBLE_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_DECIMAL_TYPE110xB

DECIMAL をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_DECIMAL_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_DATETIME_TYPE120xC

WS_DATETIME をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_DATETIME_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_TIMESPAN_TYPE130xD

WS_TIMESPAN をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_TIMESPAN_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_GUID_TYPE140xE

GUID をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_GUID_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_UNIQUE_ID_TYPE150xF

WS_UNIQUE_ID をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_UNIQUE_ID_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_STRING_TYPE160x10

WS_STRING をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_STRING_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は、chars フィールドを NULL に設定し、長さに 0 を指定することで表現されます。長さが 0 の場合、chars フィールドが NULL であるかどうかによって nil 文字列と空文字列が区別されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_WSZ_TYPE170x11

0 終端の WCHAR* をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_WSZ_DESCRIPTION 型記述を任意に指定できます。

文字列のワイヤー形式に埋め込みの 0 が含まれている場合、逆シリアル化はエラーを返します。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。既定値は WCHAR* のアドレスを指すようにし、サイズは sizeof(WCHAR*) にします。

WS_BYTES_TYPE180x12

WS_BYTES をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_BYTES_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は、bytes フィールドを NULL に設定し、長さに 0 を指定することで表現されます。長さが 0 の場合、bytes フィールドが NULL であるかどうかによって nil 配列と空の配列が区別されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_XML_STRING_TYPE190x13

WS_XML_STRING をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_XML_STRING_DESCRIPTION 型記述を任意に指定できます。

utf8 バイトの配列には埋め込みの 0 を含めることができます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は、bytes フィールドを NULL に設定し、長さに 0 を指定することで表現されます。長さが 0 の場合、bytes フィールドが NULL であるかどうかによって nil 文字列と空文字列が区別されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_XML_QNAME_TYPE200x14

WS_XML_QNAME をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_XML_QNAME_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_XML_BUFFER_TYPE210x15

WS_XML_BUFFER* をシリアル化するときに使用します。

この型に関連付けられた型記述構造体はありません。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

WS_XML_BUFFER の内容は次のように解釈されます:

  • 最上位レベルで使用する場合、または WS_ELEMENT_FIELD_MAPPING と共に使用する場合、WS_XML_BUFFER には、属性と要素の内容を表す単一の要素を格納します。バッファー内の要素のローカル名と名前空間は無視され、バッファーの書き込み時に実際の要素名と名前空間に置き換えられます。次に例を示します:
    
    // Element in WS_XML_BUFFER
    <PrefixInBuffer:LocalNameInBuffer xmlns:PrefixInBuffer="namespace-in-buffer" other-attributes>
    text-and-or-element-content
    </PrefixInBuffer:LocalNameInBuffer>
    
    // Element that is written
    <NewPrefix:NewLocalName xmlns:NewPrefix="new-namespace" other-attributes>
    text-and-or-element-content
    </NewPrefix:NewLocalName>
    

    名前空間の衝突による問題を避けるため、バッファー内の要素の名前空間を選ぶ際は、次のいずれかの規則に従うことをお勧めします:

    • バッファー内で他に使用されていない、"" 以外の名前空間を使用します。
    • 書き込まれる要素と同じ名前空間を使用します。
    値が逆シリアル化されると、要素名と名前空間は読み取られた要素に対応するものになります。
  • WS_ANY_ELEMENT_FIELD_MAPPING と共に使用する場合、WS_XML_BUFFER には、XML コンテンツ内の 1 つの要素を表す単一の要素を格納します。
  • WS_REPEATING_ELEMENT_FIELD_MAPPING と共に使用する場合、配列内でシリアル化される各 WS_XML_BUFFER は、上記の WS_ELEMENT_FIELD_MAPPING と同じ規約に従います (各 WS_XML_BUFFER は XML コンテンツ内の 1 つの要素を表します)。
  • WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING と共に使用する場合、配列内でシリアル化される各 WS_XML_BUFFER は、XML コンテンツ内の 1 つの要素を表します。
  • WS_ANY_CONTENT_FIELD_MAPPING と共に使用する場合、WS_XML_BUFFER には 0 個以上の最上位要素またはテキストを格納できます。この内容は、格納側の構造体の残りの XML コンテンツに対応します。
WS_CHAR_ARRAY_TYPE220x16

構造体の 2 つのフィールドを 1 つの単位としてシリアル化するときに使用します。すなわち、WCHAR の配列を指す WCHAR* フィールドと、配列内の文字数を保持する ULONG フィールドです。この型は WS_FIELD_DESCRIPTION 内でのみ使用できます。


struct
{
    ULONG count;    // array length, in characters
    WCHAR* chars;   // array of unicode characters
} value;

構造体内でのオフセットは WS_FIELD_DESCRIPTION の一部として個別に指定されるため、これらのフィールドは格納側の構造体内の任意の位置に任意の順序で配置できます。count フィールドのオフセットは countOffset フィールドで指定し、chars フィールドのオフセットは offset フィールドで指定します。

文字の配列には埋め込みの 0 を含めることができます。

この型では、許可される値を制約するために WS_CHAR_ARRAY_DESCRIPTION 型記述を任意に指定できます。

この型は、いずれの WS_TYPE_MAPPING 値とも共に使用できません。

この型は WS_FIELD_DESCRIPTION 内でのみ使用できます。

この型は次の WS_FIELD_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 文字列は、chars フィールドを NULL に設定し、長さに 0 を指定することで表現されます。nil 文字列と空文字列は、chars フィールドが NULL であるかどうかによって区別されます (どちらの場合も長さは 0 です)。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

WS_UTF8_ARRAY_TYPE230x17

構造体の 2 つのフィールドを 1 つの単位としてシリアル化するときに使用します。すなわち、UTF8 バイトの配列を指す BYTE* フィールドと、配列内のバイト数を保持する ULONG フィールドです。この型は WS_FIELD_DESCRIPTION 内でのみ使用できます。


struct
{
    ULONG count; // array length, in bytes
    BYTE* bytes; // array of utf8 characters
} value;

構造体内でのオフセットは WS_FIELD_DESCRIPTION の一部として個別に指定されるため、これらのフィールドは格納側の構造体内の任意の位置に任意の順序で配置できます。count フィールドのオフセットは countOffset フィールドで指定し、bytes フィールドのオフセットは offset フィールドで指定します。

utf8 バイトの配列には埋め込みの 0 を含めることができます。

この型では、許可される値を制約するために WS_UTF8_ARRAY_DESCRIPTION 型記述を任意に指定できます。

この型は、いずれの WS_TYPE_MAPPING 値とも共に使用できません。

この型は WS_FIELD_DESCRIPTION 内でのみ使用できます。

この型は次の WS_FIELD_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 文字列は、bytes フィールドを NULL に設定し、長さに 0 を指定することで表現されます。nil 文字列と空文字列は、bytes フィールドが NULL であるかどうかによって区別されます (どちらの場合も長さは 0 です)。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

WS_BYTE_ARRAY_TYPE240x18

構造体の 2 つのフィールドを 1 つの単位としてシリアル化するときに使用します。すなわち、バイトの配列を指す BYTE* フィールドと、配列内のバイト数を保持する ULONG フィールドです。この型は WS_FIELD_DESCRIPTION 内でのみ使用できます。


struct
{
    ULONG count;    // array length, in bytes
    BYTE* bytes;    // array of bytes
} value;

構造体内でのオフセットは WS_FIELD_DESCRIPTION の一部として個別に指定されるため、これらのフィールドは格納側の構造体内の任意の位置に任意の順序で配置できます。count フィールドのオフセットは countOffset フィールドで指定し、bytes フィールドのオフセットは offset フィールドで指定します。

この型では、許可される値を制約するために WS_BYTE_ARRAY_DESCRIPTION 型記述を任意に指定できます。

この型は、いずれの WS_TYPE_MAPPING 値とも共に使用できません。

この型は WS_FIELD_DESCRIPTION 内でのみ使用できます。

この型は次の WS_FIELD_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 配列は、配列ポインターのフィールドを NULL に設定し、長さに 0 を指定することで表現されます。nil 配列と空の配列は、配列ポインターのフィールドが NULL であるかどうかによって区別されます (どちらの場合も長さは 0 です)。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

WS_DESCRIPTION_TYPE250x19

シリアル化される構造体の XML 型を表すために使用します。XML スキーマの xsi:type 属性を使用してサブタイプを識別する用途に利用できます。構造体のフィールドは WS_STRUCT_DESCRIPTION* 型でなければなりません。

この型に関連付けられた型記述はありません。

この型は、いずれの WS_TYPE_MAPPING 値とも共に使用できません。

この型は WS_FIELD_DESCRIPTION 内でのみ使用できます。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

この型は次の WS_FIELD_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください:
  • 0
WS_STRUCT_TYPE260x1A

ユーザー定義の構造体をシリアル化するときに使用します。関連付けられた型記述は、構造体のフィールドをシリアル化する方法に関する情報を提供する WS_STRUCT_DESCRIPTION を指します。

この型では、型のシリアル化方法に関する情報を提供する WS_STRUCT_DESCRIPTION 型記述を指定する必要があります。

構造体で定義されるフィールドが後述の制限に従っている限り、この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

WS_CUSTOM_TYPE270x1B

カスタム型をシリアル化するときに使用します。関連付けられた型記述は、型のシリアル化方法に関する情報を提供する WS_CUSTOM_TYPE_DESCRIPTION を指します。

この型では、型のシリアル化方法に関する情報 (型の読み取りと書き込みに使用される WS_READ_TYPE_CALLBACK および WS_WRITE_TYPE_CALLBACK を含む) を提供する WS_CUSTOM_TYPE_DESCRIPTION 型記述を指定する必要があります。

コールバックには WS_TYPE_MAPPING が渡され、そのマッピングがサポートされるかどうかを判断します。

WS_FIELD_MAPPING 値がサポートされるかどうかは、コールバックによって決定される WS_TYPE_MAPPING のサポート状況に依存します。規則は次のとおりです:

どの WS_TYPE_MAPPING 値がサポートされるかにかかわらず、この型は常に WS_NO_FIELD_MAPPING と共に使用できます。

この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください:

nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_ENDPOINT_ADDRESS_TYPE280x1C

WS_ENDPOINT_ADDRESS をシリアル化するときに使用します。関連付けられた型記述は、エンドポイントアドレスのシリアル化方法に関する情報を提供する WS_ENDPOINT_ADDRESS_DESCRIPTION を指します。

この型では、シリアル化形式に関する情報を提供する WS_ENDPOINT_ADDRESS_DESCRIPTION 型記述を指定する必要があります。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

WS_FAULT_TYPE290x1D

WS_FAULT をシリアル化するときに使用します。関連付けられた型記述は、フォールトのシリアル化方法に関する情報を提供する WS_FAULT_DESCRIPTION を指します。

この型では、シリアル化形式に関する情報を提供する WS_FAULT_DESCRIPTION 型記述を指定する必要があります。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

WS_VOID_TYPE300x1E

この型は、任意のサイズのフィールドを指定するために使用します。

型のサイズを指定するために、WS_VOID_DESCRIPTION を任意に指定できます。

この型は、いずれの WS_TYPE_MAPPING 値とも共に使用できません。

この型は WS_STRUCT_DESCRIPTIONWS_FIELD_DESCRIPTION 内でのみ使用できます。

この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください:

この型は次の WS_FIELD_MAPPING 値と共に使用できます:
  • WS_NO_FIELD_MAPPING。逆シリアル化時に構造体のフィールドを既定値で初期化するために使用します。これは、対象のフィールドが XML コンテンツへのマッピングを持たず、その型が他の WS_TYPE のいずれでもない場合に使用します。値は次のように初期化されます:
    • WS_FIELD_POINTER が指定されている場合、フィールドは NULL に設定されます。
    • WS_FIELD_POINTER が指定されていない場合、その型で許可されていて既定値が指定されていれば、フィールドは WS_DEFAULT_VALUE に設定されます。それ以外の場合はすべて 0 に設定されます。フィールドのサイズは WS_VOID_DESCRIPTION の一部として指定します。WS_VOID_DESCRIPTION が指定されていない場合、フィールドのサイズは 0 として解釈されます。
  • WS_ANY_ELEMENT_FIELD_MAPPINGWS_REPEATING_ANY_ELEMENT_FIELD_MAPPINGWS_ELEMENT_FIELD_MAPPINGWS_ATTRIBUTE_FIELD_MAPPINGWS_ANY_CONTENT_FIELD_MAPPING、または WS_ANY_ATTRIBUTES_FIELD_MAPPING。これは、逆シリアル化時に XML コンテンツを破棄する場合や、シリアル化時にフィールドを無視する場合に使用します。値は格納されないため、構造体にフィールドは必要ありません。フィールドのオフセットは 0、フィールドのサイズも 0 にします (WS_VOID_DESCRIPTION を指定しない場合の既定値です)。WS_FIELD_POINTER オプションは使用しないでください。
WS_ENUM_TYPE310x1F

列挙値に対応する符号付き 32 ビット整数をシリアル化するときに使用します。

この型では、列挙値と対応するシリアル化形式に関する情報を提供する WS_ENUM_DESCRIPTION 型記述を指定する必要があります。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_DURATION_TYPE320x20

WS_DURATION をシリアル化するときに使用します。

この型では、許可される値を制約するために WS_DURATION_DESCRIPTION 型記述を任意に指定できます。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: nil 値は NULL ポインターで表現されます。

この型には WS_DEFAULT_VALUE を指定できます。どのフィールドマッピング値で既定値を指定できるかについては、WS_FIELD_MAPPING のドキュメントを参照してください。

WS_UNION_TYPE330x21

タグ付き共用体に対応する一連の選択肢をシリアル化するときに使用します。


enum EnumType
{
// values identifying each choice
} value;
struct StructType
{
// value indicating which choice is set currently
EnumType selector;
union
{
// values corresponding to each choice
} value;
};

この型では、選択肢と対応するシリアル化形式に関する情報を提供する WS_UNION_DESCRIPTION 型記述を指定する必要があります。

この型は次の WS_TYPE_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_MAPPING 値と共に使用できます: この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください: この型は nil 値をサポートしません。

この型では WS_DEFAULT_VALUE の指定はサポートされません。WS_FIELD_OPTIONAL と共に使用する場合、共用体内の既定値は WS_UNION_DESCRIPTION の nonEnumValue で指定します。

WS_ANY_ATTRIBUTES_TYPE340x22

WS_ANY_ATTRIBUTES を使用してフィールドにマップされていない一連の属性をシリアル化するときに使用します。

この型に関連付けられた型記述はありません。

この型は、いずれの WS_TYPE_MAPPING 値とも共に使用できません。

この型は WS_FIELD_DESCRIPTION 内でのみ使用できます。

この型は次の WS_FIELD_MAPPING 値と共に使用できます:

この型は次の WS_FIELD_OPTIONS 値と共に使用できます。特定のフィールドマッピング値でどのオプションがサポートされるかについては、WS_FIELD_MAPPING のドキュメントを参照してください:
  • 0
この型は nil 値をサポートしません。

この型では WS_DEFAULT_VALUE の指定はサポートされません。

公式ドキュメント

シリアル化でサポートされる型です。

解説(Remarks)

多くの WS_TYPE には対応する型記述構造体があり、その型のシリアル化または逆シリアル化に使用する追加情報を指定できます。

たとえば WS_INT32_TYPE には WS_INT32_DESCRIPTION 構造体があり、逆シリアル化される値に制約を課すことができます。これは省略可能な型記述です (指定しない場合は 32 ビット整数の全範囲が許可されます)。

もう 1 つの例は WS_STRUCT_TYPE で、フィールドを持つユーザー定義の構造体を指定できます。フィールドは WS_STRUCT_DESCRIPTION で記述します。この型記述は必須です。

シリアル化に基づく各種 API や構造体では、WS_TYPE に型記述のポインターが伴います。このポインターは、型記述が未定義か、省略可能か、必須かに応じて NULL または NULL 以外にします。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum WS_TYPE : int {
    WS_BOOL_TYPE = 0,
    WS_INT8_TYPE = 1,
    WS_INT16_TYPE = 2,
    WS_INT32_TYPE = 3,
    WS_INT64_TYPE = 4,
    WS_UINT8_TYPE = 5,
    WS_UINT16_TYPE = 6,
    WS_UINT32_TYPE = 7,
    WS_UINT64_TYPE = 8,
    WS_FLOAT_TYPE = 9,
    WS_DOUBLE_TYPE = 10,
    WS_DECIMAL_TYPE = 11,
    WS_DATETIME_TYPE = 12,
    WS_TIMESPAN_TYPE = 13,
    WS_GUID_TYPE = 14,
    WS_UNIQUE_ID_TYPE = 15,
    WS_STRING_TYPE = 16,
    WS_WSZ_TYPE = 17,
    WS_BYTES_TYPE = 18,
    WS_XML_STRING_TYPE = 19,
    WS_XML_QNAME_TYPE = 20,
    WS_XML_BUFFER_TYPE = 21,
    WS_CHAR_ARRAY_TYPE = 22,
    WS_UTF8_ARRAY_TYPE = 23,
    WS_BYTE_ARRAY_TYPE = 24,
    WS_DESCRIPTION_TYPE = 25,
    WS_STRUCT_TYPE = 26,
    WS_CUSTOM_TYPE = 27,
    WS_ENDPOINT_ADDRESS_TYPE = 28,
    WS_FAULT_TYPE = 29,
    WS_VOID_TYPE = 30,
    WS_ENUM_TYPE = 31,
    WS_DURATION_TYPE = 32,
    WS_UNION_TYPE = 33,
    WS_ANY_ATTRIBUTES_TYPE = 34
} WS_TYPE;
public enum WS_TYPE : int
{
    WS_BOOL_TYPE = 0,
    WS_INT8_TYPE = 1,
    WS_INT16_TYPE = 2,
    WS_INT32_TYPE = 3,
    WS_INT64_TYPE = 4,
    WS_UINT8_TYPE = 5,
    WS_UINT16_TYPE = 6,
    WS_UINT32_TYPE = 7,
    WS_UINT64_TYPE = 8,
    WS_FLOAT_TYPE = 9,
    WS_DOUBLE_TYPE = 10,
    WS_DECIMAL_TYPE = 11,
    WS_DATETIME_TYPE = 12,
    WS_TIMESPAN_TYPE = 13,
    WS_GUID_TYPE = 14,
    WS_UNIQUE_ID_TYPE = 15,
    WS_STRING_TYPE = 16,
    WS_WSZ_TYPE = 17,
    WS_BYTES_TYPE = 18,
    WS_XML_STRING_TYPE = 19,
    WS_XML_QNAME_TYPE = 20,
    WS_XML_BUFFER_TYPE = 21,
    WS_CHAR_ARRAY_TYPE = 22,
    WS_UTF8_ARRAY_TYPE = 23,
    WS_BYTE_ARRAY_TYPE = 24,
    WS_DESCRIPTION_TYPE = 25,
    WS_STRUCT_TYPE = 26,
    WS_CUSTOM_TYPE = 27,
    WS_ENDPOINT_ADDRESS_TYPE = 28,
    WS_FAULT_TYPE = 29,
    WS_VOID_TYPE = 30,
    WS_ENUM_TYPE = 31,
    WS_DURATION_TYPE = 32,
    WS_UNION_TYPE = 33,
    WS_ANY_ATTRIBUTES_TYPE = 34,
}
Public Enum WS_TYPE As Integer
    WS_BOOL_TYPE = 0
    WS_INT8_TYPE = 1
    WS_INT16_TYPE = 2
    WS_INT32_TYPE = 3
    WS_INT64_TYPE = 4
    WS_UINT8_TYPE = 5
    WS_UINT16_TYPE = 6
    WS_UINT32_TYPE = 7
    WS_UINT64_TYPE = 8
    WS_FLOAT_TYPE = 9
    WS_DOUBLE_TYPE = 10
    WS_DECIMAL_TYPE = 11
    WS_DATETIME_TYPE = 12
    WS_TIMESPAN_TYPE = 13
    WS_GUID_TYPE = 14
    WS_UNIQUE_ID_TYPE = 15
    WS_STRING_TYPE = 16
    WS_WSZ_TYPE = 17
    WS_BYTES_TYPE = 18
    WS_XML_STRING_TYPE = 19
    WS_XML_QNAME_TYPE = 20
    WS_XML_BUFFER_TYPE = 21
    WS_CHAR_ARRAY_TYPE = 22
    WS_UTF8_ARRAY_TYPE = 23
    WS_BYTE_ARRAY_TYPE = 24
    WS_DESCRIPTION_TYPE = 25
    WS_STRUCT_TYPE = 26
    WS_CUSTOM_TYPE = 27
    WS_ENDPOINT_ADDRESS_TYPE = 28
    WS_FAULT_TYPE = 29
    WS_VOID_TYPE = 30
    WS_ENUM_TYPE = 31
    WS_DURATION_TYPE = 32
    WS_UNION_TYPE = 33
    WS_ANY_ATTRIBUTES_TYPE = 34
End Enum
import enum

class WS_TYPE(enum.IntEnum):
    WS_BOOL_TYPE = 0
    WS_INT8_TYPE = 1
    WS_INT16_TYPE = 2
    WS_INT32_TYPE = 3
    WS_INT64_TYPE = 4
    WS_UINT8_TYPE = 5
    WS_UINT16_TYPE = 6
    WS_UINT32_TYPE = 7
    WS_UINT64_TYPE = 8
    WS_FLOAT_TYPE = 9
    WS_DOUBLE_TYPE = 10
    WS_DECIMAL_TYPE = 11
    WS_DATETIME_TYPE = 12
    WS_TIMESPAN_TYPE = 13
    WS_GUID_TYPE = 14
    WS_UNIQUE_ID_TYPE = 15
    WS_STRING_TYPE = 16
    WS_WSZ_TYPE = 17
    WS_BYTES_TYPE = 18
    WS_XML_STRING_TYPE = 19
    WS_XML_QNAME_TYPE = 20
    WS_XML_BUFFER_TYPE = 21
    WS_CHAR_ARRAY_TYPE = 22
    WS_UTF8_ARRAY_TYPE = 23
    WS_BYTE_ARRAY_TYPE = 24
    WS_DESCRIPTION_TYPE = 25
    WS_STRUCT_TYPE = 26
    WS_CUSTOM_TYPE = 27
    WS_ENDPOINT_ADDRESS_TYPE = 28
    WS_FAULT_TYPE = 29
    WS_VOID_TYPE = 30
    WS_ENUM_TYPE = 31
    WS_DURATION_TYPE = 32
    WS_UNION_TYPE = 33
    WS_ANY_ATTRIBUTES_TYPE = 34
// WS_TYPE
pub const WS_BOOL_TYPE: i32 = 0;
pub const WS_INT8_TYPE: i32 = 1;
pub const WS_INT16_TYPE: i32 = 2;
pub const WS_INT32_TYPE: i32 = 3;
pub const WS_INT64_TYPE: i32 = 4;
pub const WS_UINT8_TYPE: i32 = 5;
pub const WS_UINT16_TYPE: i32 = 6;
pub const WS_UINT32_TYPE: i32 = 7;
pub const WS_UINT64_TYPE: i32 = 8;
pub const WS_FLOAT_TYPE: i32 = 9;
pub const WS_DOUBLE_TYPE: i32 = 10;
pub const WS_DECIMAL_TYPE: i32 = 11;
pub const WS_DATETIME_TYPE: i32 = 12;
pub const WS_TIMESPAN_TYPE: i32 = 13;
pub const WS_GUID_TYPE: i32 = 14;
pub const WS_UNIQUE_ID_TYPE: i32 = 15;
pub const WS_STRING_TYPE: i32 = 16;
pub const WS_WSZ_TYPE: i32 = 17;
pub const WS_BYTES_TYPE: i32 = 18;
pub const WS_XML_STRING_TYPE: i32 = 19;
pub const WS_XML_QNAME_TYPE: i32 = 20;
pub const WS_XML_BUFFER_TYPE: i32 = 21;
pub const WS_CHAR_ARRAY_TYPE: i32 = 22;
pub const WS_UTF8_ARRAY_TYPE: i32 = 23;
pub const WS_BYTE_ARRAY_TYPE: i32 = 24;
pub const WS_DESCRIPTION_TYPE: i32 = 25;
pub const WS_STRUCT_TYPE: i32 = 26;
pub const WS_CUSTOM_TYPE: i32 = 27;
pub const WS_ENDPOINT_ADDRESS_TYPE: i32 = 28;
pub const WS_FAULT_TYPE: i32 = 29;
pub const WS_VOID_TYPE: i32 = 30;
pub const WS_ENUM_TYPE: i32 = 31;
pub const WS_DURATION_TYPE: i32 = 32;
pub const WS_UNION_TYPE: i32 = 33;
pub const WS_ANY_ATTRIBUTES_TYPE: i32 = 34;
// WS_TYPE
const (
	WS_BOOL_TYPE int32 = 0
	WS_INT8_TYPE int32 = 1
	WS_INT16_TYPE int32 = 2
	WS_INT32_TYPE int32 = 3
	WS_INT64_TYPE int32 = 4
	WS_UINT8_TYPE int32 = 5
	WS_UINT16_TYPE int32 = 6
	WS_UINT32_TYPE int32 = 7
	WS_UINT64_TYPE int32 = 8
	WS_FLOAT_TYPE int32 = 9
	WS_DOUBLE_TYPE int32 = 10
	WS_DECIMAL_TYPE int32 = 11
	WS_DATETIME_TYPE int32 = 12
	WS_TIMESPAN_TYPE int32 = 13
	WS_GUID_TYPE int32 = 14
	WS_UNIQUE_ID_TYPE int32 = 15
	WS_STRING_TYPE int32 = 16
	WS_WSZ_TYPE int32 = 17
	WS_BYTES_TYPE int32 = 18
	WS_XML_STRING_TYPE int32 = 19
	WS_XML_QNAME_TYPE int32 = 20
	WS_XML_BUFFER_TYPE int32 = 21
	WS_CHAR_ARRAY_TYPE int32 = 22
	WS_UTF8_ARRAY_TYPE int32 = 23
	WS_BYTE_ARRAY_TYPE int32 = 24
	WS_DESCRIPTION_TYPE int32 = 25
	WS_STRUCT_TYPE int32 = 26
	WS_CUSTOM_TYPE int32 = 27
	WS_ENDPOINT_ADDRESS_TYPE int32 = 28
	WS_FAULT_TYPE int32 = 29
	WS_VOID_TYPE int32 = 30
	WS_ENUM_TYPE int32 = 31
	WS_DURATION_TYPE int32 = 32
	WS_UNION_TYPE int32 = 33
	WS_ANY_ATTRIBUTES_TYPE int32 = 34
)
const
  WS_BOOL_TYPE = 0;
  WS_INT8_TYPE = 1;
  WS_INT16_TYPE = 2;
  WS_INT32_TYPE = 3;
  WS_INT64_TYPE = 4;
  WS_UINT8_TYPE = 5;
  WS_UINT16_TYPE = 6;
  WS_UINT32_TYPE = 7;
  WS_UINT64_TYPE = 8;
  WS_FLOAT_TYPE = 9;
  WS_DOUBLE_TYPE = 10;
  WS_DECIMAL_TYPE = 11;
  WS_DATETIME_TYPE = 12;
  WS_TIMESPAN_TYPE = 13;
  WS_GUID_TYPE = 14;
  WS_UNIQUE_ID_TYPE = 15;
  WS_STRING_TYPE = 16;
  WS_WSZ_TYPE = 17;
  WS_BYTES_TYPE = 18;
  WS_XML_STRING_TYPE = 19;
  WS_XML_QNAME_TYPE = 20;
  WS_XML_BUFFER_TYPE = 21;
  WS_CHAR_ARRAY_TYPE = 22;
  WS_UTF8_ARRAY_TYPE = 23;
  WS_BYTE_ARRAY_TYPE = 24;
  WS_DESCRIPTION_TYPE = 25;
  WS_STRUCT_TYPE = 26;
  WS_CUSTOM_TYPE = 27;
  WS_ENDPOINT_ADDRESS_TYPE = 28;
  WS_FAULT_TYPE = 29;
  WS_VOID_TYPE = 30;
  WS_ENUM_TYPE = 31;
  WS_DURATION_TYPE = 32;
  WS_UNION_TYPE = 33;
  WS_ANY_ATTRIBUTES_TYPE = 34;
// WS_TYPE
pub const WS_BOOL_TYPE: i32 = 0;
pub const WS_INT8_TYPE: i32 = 1;
pub const WS_INT16_TYPE: i32 = 2;
pub const WS_INT32_TYPE: i32 = 3;
pub const WS_INT64_TYPE: i32 = 4;
pub const WS_UINT8_TYPE: i32 = 5;
pub const WS_UINT16_TYPE: i32 = 6;
pub const WS_UINT32_TYPE: i32 = 7;
pub const WS_UINT64_TYPE: i32 = 8;
pub const WS_FLOAT_TYPE: i32 = 9;
pub const WS_DOUBLE_TYPE: i32 = 10;
pub const WS_DECIMAL_TYPE: i32 = 11;
pub const WS_DATETIME_TYPE: i32 = 12;
pub const WS_TIMESPAN_TYPE: i32 = 13;
pub const WS_GUID_TYPE: i32 = 14;
pub const WS_UNIQUE_ID_TYPE: i32 = 15;
pub const WS_STRING_TYPE: i32 = 16;
pub const WS_WSZ_TYPE: i32 = 17;
pub const WS_BYTES_TYPE: i32 = 18;
pub const WS_XML_STRING_TYPE: i32 = 19;
pub const WS_XML_QNAME_TYPE: i32 = 20;
pub const WS_XML_BUFFER_TYPE: i32 = 21;
pub const WS_CHAR_ARRAY_TYPE: i32 = 22;
pub const WS_UTF8_ARRAY_TYPE: i32 = 23;
pub const WS_BYTE_ARRAY_TYPE: i32 = 24;
pub const WS_DESCRIPTION_TYPE: i32 = 25;
pub const WS_STRUCT_TYPE: i32 = 26;
pub const WS_CUSTOM_TYPE: i32 = 27;
pub const WS_ENDPOINT_ADDRESS_TYPE: i32 = 28;
pub const WS_FAULT_TYPE: i32 = 29;
pub const WS_VOID_TYPE: i32 = 30;
pub const WS_ENUM_TYPE: i32 = 31;
pub const WS_DURATION_TYPE: i32 = 32;
pub const WS_UNION_TYPE: i32 = 33;
pub const WS_ANY_ATTRIBUTES_TYPE: i32 = 34;
const
  WS_BOOL_TYPE* = 0
  WS_INT8_TYPE* = 1
  WS_INT16_TYPE* = 2
  WS_INT32_TYPE* = 3
  WS_INT64_TYPE* = 4
  WS_UINT8_TYPE* = 5
  WS_UINT16_TYPE* = 6
  WS_UINT32_TYPE* = 7
  WS_UINT64_TYPE* = 8
  WS_FLOAT_TYPE* = 9
  WS_DOUBLE_TYPE* = 10
  WS_DECIMAL_TYPE* = 11
  WS_DATETIME_TYPE* = 12
  WS_TIMESPAN_TYPE* = 13
  WS_GUID_TYPE* = 14
  WS_UNIQUE_ID_TYPE* = 15
  WS_STRING_TYPE* = 16
  WS_WSZ_TYPE* = 17
  WS_BYTES_TYPE* = 18
  WS_XML_STRING_TYPE* = 19
  WS_XML_QNAME_TYPE* = 20
  WS_XML_BUFFER_TYPE* = 21
  WS_CHAR_ARRAY_TYPE* = 22
  WS_UTF8_ARRAY_TYPE* = 23
  WS_BYTE_ARRAY_TYPE* = 24
  WS_DESCRIPTION_TYPE* = 25
  WS_STRUCT_TYPE* = 26
  WS_CUSTOM_TYPE* = 27
  WS_ENDPOINT_ADDRESS_TYPE* = 28
  WS_FAULT_TYPE* = 29
  WS_VOID_TYPE* = 30
  WS_ENUM_TYPE* = 31
  WS_DURATION_TYPE* = 32
  WS_UNION_TYPE* = 33
  WS_ANY_ATTRIBUTES_TYPE* = 34
enum WS_TYPE : int {
    WS_BOOL_TYPE = 0,
    WS_INT8_TYPE = 1,
    WS_INT16_TYPE = 2,
    WS_INT32_TYPE = 3,
    WS_INT64_TYPE = 4,
    WS_UINT8_TYPE = 5,
    WS_UINT16_TYPE = 6,
    WS_UINT32_TYPE = 7,
    WS_UINT64_TYPE = 8,
    WS_FLOAT_TYPE = 9,
    WS_DOUBLE_TYPE = 10,
    WS_DECIMAL_TYPE = 11,
    WS_DATETIME_TYPE = 12,
    WS_TIMESPAN_TYPE = 13,
    WS_GUID_TYPE = 14,
    WS_UNIQUE_ID_TYPE = 15,
    WS_STRING_TYPE = 16,
    WS_WSZ_TYPE = 17,
    WS_BYTES_TYPE = 18,
    WS_XML_STRING_TYPE = 19,
    WS_XML_QNAME_TYPE = 20,
    WS_XML_BUFFER_TYPE = 21,
    WS_CHAR_ARRAY_TYPE = 22,
    WS_UTF8_ARRAY_TYPE = 23,
    WS_BYTE_ARRAY_TYPE = 24,
    WS_DESCRIPTION_TYPE = 25,
    WS_STRUCT_TYPE = 26,
    WS_CUSTOM_TYPE = 27,
    WS_ENDPOINT_ADDRESS_TYPE = 28,
    WS_FAULT_TYPE = 29,
    WS_VOID_TYPE = 30,
    WS_ENUM_TYPE = 31,
    WS_DURATION_TYPE = 32,
    WS_UNION_TYPE = 33,
    WS_ANY_ATTRIBUTES_TYPE = 34,
}
#define global WS_BOOL_TYPE             0x0
#define global WS_INT8_TYPE             0x1
#define global WS_INT16_TYPE            0x2
#define global WS_INT32_TYPE            0x3
#define global WS_INT64_TYPE            0x4
#define global WS_UINT8_TYPE            0x5
#define global WS_UINT16_TYPE           0x6
#define global WS_UINT32_TYPE           0x7
#define global WS_UINT64_TYPE           0x8
#define global WS_FLOAT_TYPE            0x9
#define global WS_DOUBLE_TYPE           0xA
#define global WS_DECIMAL_TYPE          0xB
#define global WS_DATETIME_TYPE         0xC
#define global WS_TIMESPAN_TYPE         0xD
#define global WS_GUID_TYPE             0xE
#define global WS_UNIQUE_ID_TYPE        0xF
#define global WS_STRING_TYPE           0x10
#define global WS_WSZ_TYPE              0x11
#define global WS_BYTES_TYPE            0x12
#define global WS_XML_STRING_TYPE       0x13
#define global WS_XML_QNAME_TYPE        0x14
#define global WS_XML_BUFFER_TYPE       0x15
#define global WS_CHAR_ARRAY_TYPE       0x16
#define global WS_UTF8_ARRAY_TYPE       0x17
#define global WS_BYTE_ARRAY_TYPE       0x18
#define global WS_DESCRIPTION_TYPE      0x19
#define global WS_STRUCT_TYPE           0x1A
#define global WS_CUSTOM_TYPE           0x1B
#define global WS_ENDPOINT_ADDRESS_TYPE 0x1C
#define global WS_FAULT_TYPE            0x1D
#define global WS_VOID_TYPE             0x1E
#define global WS_ENUM_TYPE             0x1F
#define global WS_DURATION_TYPE         0x20
#define global WS_UNION_TYPE            0x21
#define global WS_ANY_ATTRIBUTES_TYPE   0x22