DataDefinitionType 複合型
イベントに含めるデータ項目を定義します。
<xs:complexType name="DataDefinitionType"
mixed="true"
>
<xs:simpleContent>
<xs:extension
base="string"
>
<xs:attribute name="name"
type="string"
use="required"
/>
<xs:attribute name="inType"
type="QName"
use="required"
/>
<xs:attribute name="outType"
type="QName"
use="optional"
/>
<xs:attribute name="map"
type="string"
use="optional"
/>
<xs:attribute name="length"
type="LengthType"
use="optional"
/>
<xs:attribute name="count"
type="CountType"
use="optional"
/>
<xs:anyAttribute
processContents="lax"
namespace="##other"
/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
属性
名前 | Type | 説明 |
---|---|---|
count | CountType | データ項目が配列である場合の配列内の要素の数。 実際のカウントまたはカウントを含む別のデータ項目の名前を指定できます。 |
inType | QName | このデータ項目のデータ型。 定義済みの入力データ型の一覧については、 InputType 複合型に関するページを参照してください。 |
length | LengthType | バイナリ BLOB などの可変長データ項目の長さ。 バイナリ データの場合はバイト単位で、文字列データの場合は文字数を指定します。 実際の長さ、または長さを含む別のデータ項目の名前を指定できます。 length 属性を使用して固定長文字列を指定する場合は、文字列を固定長に埋め込み、末尾に null 終端文字を使用できるようにする必要があります (たとえば、長さが 5 の場合、文字列 "abc" を "abc" として埋め込む必要があります)。 文字列の長さは null ターミネータ文字を含める必要があります。 |
map | string | 整数値を文字列にマップするために使用する名前/値マップの名前。 データ項目のデータ型は、次のいずれかの型である必要があります。
|
name | string | データ項目の名前。 テンプレートで UserData セクションを指定する場合は、この名前を使用して XML フラグメント内のこのデータ項目を参照できます。 また、このデータ項目に長さまたはカウント値が含まれている場合は、別のデータ項目の長さ属性または count 属性でこの名前を参照することもできます。 Windows Vista: この属性は省略可能です。 |
outType | QName | このデータ項目をレンダリングするときに使用するデータ型。 定義済みの出力データ型の一覧については、「 OutputType 複合型」を参照してください。 Windows Vista: 出力の種類は無視され、入力の種類に基づいてサービスによって型が決定されます。 |
解説
バイナリ BLOB などの可変長入力型の場合は、length 属性を使用してデータのサイズを明示的に指定する必要があります。 文字列の場合は、文字列が固定長の場合にのみ length 属性を指定します。
例
データ項目定義の例をいくつか次に示します。
<!-- The data item is an 8-bit integer -->
<data name="binaryChar" inType="win:UInt8">
<!-- The data item is a single ANSI character -->
<data name="ansiChar" inType="win:UInt8" outtype="xs:string">
<!-- The data item is a single Unicode character -->
<data name="unicodeChar" inType="win:UInt16" outtype="xs:string">
<!-- The data item is an IP address that is rendered as a dot separated list of interger values -->
<data name="ipAddress" inType="win:UInt32" outtype="win:IPv4">
<!-- The data item is a Boolean value -->
<data name="success" inType="win:boolean">
<!-- The data item is a null-terminated ANSI string -->
<data name="string" inType="win:AnsiString">
<!-- The data item is a fixed length ANSI string -->
<data name="string" inType="win:AnsiString" length="42">
<!-- The data item is a fixed length array of null-terminated ANSI strings -->
<data name="strings" inType="win:AnsiString" count="20">
<!-- The data item is a fixed length array of fixed length ANSI strings -->
<data name="strings" inType="win:AnsiString" length="42" count="20">
<!-- The data item is a variable length array of same sized ANSI strings -->
<data name="stringLength" inType="win:UInt16">
<data name="arrayCount" inType="win:Uint16">
<data name="strings" inType="win:AnsiString" length="stringLength" count="arrayCount">
<!-- For binary data, you must specify the size.
<!-- The data item is a fixed length array of fixed length binary blobs -->
<data name="blobs" inType="win:Binary" length="42" count="20">
<!-- The data item is a fixed length binary blob -->
<data name="blob" inType="win:Binary" length="42">
<!-- The following are illegal binary data definitions -->
<!-- This definition is illegal because no length is specified -->
<data name="blob" inType="win:Binary">
<!-- This definition is illegal because you cannot determine the length of each binary blob -->
<data name="blob" inType="win:Binary" count="20">
<!-- The data item is a variable length array of structures. Each structure -->
<!-- contains an array of same sized ANSI strings -->
<data name="arrayStructCount" inType="win:UInt16">
<struct name="countedStrings" count="arrayStructCount">
<data name="stringLength" inType="win:UInt16">
<data name="string" inType="win:AnsiString" length="stringLength">
</struct>
<!-- The data item is a time stamp that is rendered in 100ns units -->
<data name="timestamp" inType="win:UInt32" outType="win:ETWTIME">
<!-- The data item is a fixed length array of integers -->
<data name="integers" inType="win:UInt32" count="20">
<!-- The data item is a variable length array of integers -->
<data name="arrayCount" inType="win:UInt16">
<data name="integers" inType="win:UInt32" count="arrayCount">
<!-- The following is illegal because you cannot assign a length value to a data type of a known size -->
<data name="integer" inType="win:UInt32" length="42">
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2008 [デスクトップ アプリのみ] |