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>
屬性
名称 | 類型 | 描述 |
---|---|---|
count | CountType | 如果資料項目是陣列,陣列中的專案數目。 您可以指定包含計數之其他資料項目的實際計數或名稱。 |
inType | QName | 此資料項目的資料類型。 如需預先定義的輸入資料類型清單,請參閱 InputType 複雜類型。 |
長度 | LengthType | 可變長度資料項目的長度,例如二進位 Blob。 若為二進位資料,請以位元組為單位指定長度,並針對字串資料指定長度。 您可以指定實際長度或包含長度的另一個資料項目名稱。 如果您使用 length 屬性來指定固定長度字串,您必須將字串填補到其固定長度,以允許結尾的 null 結束字元字元 (例如,如果長度為 5,則字串 「abc」 必須填補為 「abc」。 字串長度必須包含 Null 結束字元。 |
map | string | 用來將整數值對應至字串的名稱/值對應。 資料項目的資料類型必須是下列其中一種類型:
|
NAME | 字串 | 資料項目的名稱。 如果您在範本中指定 UserData 區段,則可以使用名稱在 XML 片段中參考此資料項目。 如果此資料項目包含其長度或計數值,您也可以在另一個資料項目的長度或計數屬性中參考此名稱。 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 [僅限傳統型應用程式] |