次の方法で共有


XML のカスタム フィールドのデータ

Microsoft Office Project 2007 の XML データ交換スキーマ (mspdi_pj12.xsd) では、XML でのいくつかのユーザー設定フィールド情報の表現方法が変更されています。 この記事では、Office Project 2007 でのユーザー設定フィールド定義とユーザー設定フィールド値が XML 形式でどのように表現されるかを説明します。

ユーザー設定フィールド データ

Project では、ユーザー設定フィールドに関する情報を次の 2 種類のいずれかで保存します。

  • ユーザー設定フィールド定義 ユーザー設定フィールド定義は、ローカルユーザー設定フィールドまたはエンタープライズ ユーザー設定フィールドを定義するために必要なデータで構成されます。 Project for the webローカル ユーザー設定フィールドは、エンタープライズ ユーザー設定フィールドとして表示されます。 このようなデータには、ユーザー設定フィールド名、ユーザー設定フィールド ID、ユーザー設定フィールドの種類などの情報があります。

    ユーザー設定フィールド定義を保存するために使用される XML 要素は、Project XML データ交換スキーマの「ExtendedAttributes 要素の XML スキーマ」セクションで定義されます。

  • ユーザー設定フィールドの値 ユーザー設定フィールドの値は、ユーザー設定フィールドの特定の値を定義し、それをプロジェクト、タスク、リソース、または割り当てに関連付けるために必要なデータです。 たとえば、特定のタスクの Health エンタープライズ ユーザー設定フィールドを Late の値に設定できます。

この記事は次のセクションで構成されます。

  • XML でのユーザー設定フィールド定義

  • XML でのユーザー設定フィールド値

XML でのユーザー設定フィールド定義

Project 2007 は、拡張属性コレクション内のすべてのエンタープライズおよびローカル ユーザー設定フィールド定義を表します。これは、XML 出力ファイルの ExtendedAttributes 要素に含まれています。 各ユーザー設定フィールド定義は、1 つの ExtendedAttribute 要素とその子によって表されます。

次の例は、2 つのユーザー設定フィールドを定義する拡張属性コレクションの XML 表現を示しています。 Text1 はローカル ユーザー設定フィールドで、 Health は Project 2007 で事前構成されているエンタープライズ ユーザー設定フィールドです。

<ExtendedAttributes>
    <ExtendedAttribute>
        <FieldID>188743731</FieldID>
        <FieldName>Text1</FieldName>
        <Alias>MyLocalCustomField</Alias>
        <SecondaryPID>255869028</SecondaryPID>
    </ExtendedAttribute>
    <ExtendedAttribute>
        <FieldID>188776449</FieldID>
        <FieldName>Health</FieldName>
        <CFType>7</CFType>
        <Guid>0000E8D9-65F1-4769-9BD2-819D38036FCC</Guid>
        <ElemType>20</ElemType>
        <MaxMultiValues>1</MaxMultiValues>
        <UserDef>1</UserDef>
        <SecondaryPID>255885314</SecondaryPID>
        <DefaultGuid>000079D2-4A43-41FC-B264-98D23FADD84B</DefaultGuid>
    </ExtendedAttribute>
</ExtendedAttributes>

プロジェクトを XML 形式で保存するときに、すべてのローカル ユーザー設定フィールド定義が拡張属性コレクションに書き込まれます。 ただし、現在読み込まれているエンタープライズ ユーザー設定フィールドのみを XML 出力に含めるように選択できます。 現在読み込まれているエンタープライズ グローバル アイテムのみを保存するように選択すると、XML ファイルはサイズが小さくなり、管理が容易になります。

プロジェクトの XML 形式での保存の詳細については、「XML 形式でプロジェクトを保存および開く」を参照してください。

XML でのユーザー設定フィールド値

プロジェクト、タスク、リソース、または割り当てレベルでユーザー設定フィールドに特定の値を構成するときに、Project 2007 ではその値に関する情報が XML 出力のサマリー タスク、タスク、リソース、または割り当てセクションにそれぞれ書き込まれます。

ユーザー設定フィールド値を XML で表現するには、次の 3 つの要件を満たす必要があります。

  • ユーザー設定フィールド値を、Project エンティティ (プロジェクト、タスク、リソース、または割り当て) に関連付ける。

  • ユーザー設定フィールド値を、その所属先であるユーザー設定フィールド定義に関連付ける。

  • ユーザー設定フィールド値を指定する。

次のセクションでは、Project 2007 がユーザー設定フィールド値を XML で表現する方法について説明します。

  • エンタープライズ ユーザー設定フィールド値

  • ローカル ユーザー設定フィールド値

エンタープライズ ユーザー設定フィールド値

Project 2007 では、構成できるエンタープライズ ユーザー設定フィールドの数に制限はありません。 この拡張によって、Project 2007 がエンタープライズ ユーザー設定フィールド値を XML で格納する方法が変更されています。

次の例は、 Health エンタープライズ ユーザー設定フィールドが参照テーブル値 On Schedule に設定されているタスクに関連する XML 出力を示します。

    <Task>
        ...
        <b408001>0000BB21-B2AE-410A-88B6-82C108903823</b408001>
        ...
    </Task>

この XML は、ユーザー設定フィールド値を XML 形式で格納するための 3 つの要件を次のように満たしています。

  • ユーザー設定フィールド値が、値の設定先の XML 出力のサマリー タスク、タスク、リソース、または割り当てセクションに書き込まれている。 これにより、ユーザー設定フィールド値は、適切な Project エンティティ (この場合は特定のタスク) に関連付けられます。

  • ユーザー設定フィールド ID が使用され、ユーザー設定フィールド値がユーザー設定フィールド定義に関連付けられている。 ユーザー設定フィールド ID は、ユーザー設定フィールド定義の FieldID 要素に格納されています。 Health エンタープライズ ユーザー設定フィールドの場合、ユーザー設定フィールド ID は 188776449 です。

    ユーザー設定フィールド値を格納する XML 要素の名前 (この場合は b408001 要素) が、ユーザー設定フィールド ID の 16 進数表現に対応しています。 Health エンタープライズ ユーザー設定フィールドの場合、16 進数値 0xb408001 と等しい 10 進数値は 188776449 です。

  • ユーザー設定フィールド値が、 b408001 要素内に格納されている。 Health エンタープライズ ユーザー設定フィールドは参照テーブルなので、 On Schedule のユーザー設定フィールド値はその参照テーブル値の GUID である 0000BB21-B2AE-410A-88B6-82C108903823 です。

表 1 に、各種エンタープライズ ユーザー設定フィールドのユーザー設定フィールド ID として有効な範囲を示します。

表 1. エンタープライズ ユーザー設定フィールド ID

エンタープライズ ユーザー設定フィールド値構成

ユーザー設定フィールド ID の範囲 (10 進)

ユーザー設定フィールド ID の範囲 (16 進)

プロジェクト レベル

190873600 – 190939135

b608000 ~ b617fff

タスク レベル

188776448 – 188841983

b408000 ~ b417fff

リソース レベル

205553664 – 205619199

c408000 ~ c417fff

割り当てレベル

255885312 – 255950847

f408000 ~ f417fff

262,140 のエンタープライズ ユーザー設定フィールド ID を使用できるので、ユーザー設定フィールド値には 262,140 の XML 要素名が存在する可能性があります。 パフォーマンス上の理由から、エンタープライズ ユーザー設定フィールド値を格納するために Project 2007 で使用される XML 要素は、コア Project XML データ交換スキーマ (mspdi_pj12.xsd) では定義されていません。 その代わりに、これらの要素は Project 2007 SDK ダウンロードに含まれる補足スキーマ ファイルで定義されます。 Project 2007 SDK ダウンロードへのリンクについては、「Microsoft Office Project 2007 SDK へようこそ」を参照してください。

コア スキーマには、検索可能な文字列 "##" が付いた注釈が含まれています。このような注釈は、mspdi_pj12.xsd で定義されていないエンタープライズ ユーザー設定フィールド値要素が書き込まれている場所を示しています。

ローカル ユーザー設定フィールド値

Project 2007 では、ローカル ユーザー設定フィールド値を XML で表現する方法が 2 つあり、いずれかが使用されます。 割り当てローカル ユーザー設定フィールド値は、エンタープライズ ユーザー設定フィールド値で使用されるのと同じ形式で XML に書き込まれますが、プロジェクト、タスク、およびリソース ローカル ユーザー設定フィールド値は、Microsoft Office Project 2003 で使用されたのと同じ形式で XML に書き込まれます。

次のセクションでは、Project 2007 でローカル ユーザー設定フィールド値を XML 形式で表現する方法について詳しく説明します。

  • XML での割り当てローカル ユーザー設定フィールド値

  • XML でのプロジェクト、タスク、およびリソース ローカル ユーザー設定フィールド値

XML での割り当てローカル ユーザー設定フィールド値

Project 2007 では、割り当てローカル ユーザー設定フィールド値はエンタープライズ ユーザー設定フィールド値と同じ形式で書き込まれ、ユーザー設定フィールド値を XML 形式で格納する 3 つの要件を同じように満たします。

表 2 に、割り当てローカル ユーザー設定フィールドのユーザー設定フィールド ID として有効な範囲を示します。 mspdi_pj12.xsd コア スキーマには、割り当てローカル ユーザー設定フィールド値に使用できる 200 の XML 要素が定義されています。

表 2. 割り当てローカル ユーザー設定フィールド ID

ローカル ユーザー設定フィールド値構成

ユーザー設定フィールド ID の範囲 (10 進)

ユーザー設定フィールド ID の範囲 (16 進)

割り当てレベル

255868928 – 255869128

f404000 ~ f4040c8

XML でのプロジェクト、タスク、およびリソース ローカル ユーザー設定フィールド値

Project 2007 では、プロジェクト、タスク、およびリソース ローカル ユーザー設定フィールド値は、次の例に示す形式で書き込まれます。 これは、Project 2003 ですべてのユーザー設定フィールド値に使用されたのと同じ形式です。

    <Task>
        ...
        <ExtendedAttribute>
          <FieldID>188743731</FieldID>
          <Value>This is the value of Text1</Value>
        </ExtendedAttribute>
        ...
    </Task>

この XML は、ユーザー設定フィールド値を XML 形式で格納するための 3 つの要件を次のように満たしています。

  • ユーザー設定フィールド値が、値の設定先の XML 出力のサマリー タスク、タスク、リソース、または割り当てセクションに書き込まれている。 これにより、ユーザー設定フィールド値は、適切な Project エンティティ (この場合は特定のタスク) に関連付けられます。

  • ユーザー設定フィールド ID が使用され、ユーザー設定フィールド値がユーザー設定フィールド定義に関連付けられている。 ユーザー設定フィールド ID は、ユーザー設定フィールド定義およびユーザー設定フィールド値の両方を XML で表現する FieldID 要素に格納されています。

  • ユーザー設定フィールド値が、 Value 要素内に格納されている。

関連項目

概念

Project XML データの概要

Project データ交換の要素