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 整数値を文字列にマップするために使用する名前/値マップの名前。 データ項目のデータ型は、次のいずれかの型である必要があります。
  • win:UInt8
  • win:UInt16
  • win:UInt32
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 [デスクトップ アプリのみ]