ユーザー設定フィールド型の定義

フィールド型の定義は、C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\XML に展開される、命名パターンが fldtypes*.xml である XML ファイルです。Windows SharePoint Services 3.0 に付属するフィールド型は、FLDTYPES.XML ファイルにあります。フィールド定義ファイルには、Windows SharePoint Services がリスト ビュー ページ (AllItems.aspx など) で列ヘッダーなどのフィールドを正しくレンダリングするのに必要な情報が含まれます。通常、リスト アイテム ページの表示 (DispForm.aspx など) でフィールドをレンダリングするのに利用する情報も提供されます。[カスタマイズ] [リスト] ページ、[サイト内の新しい列] ページ、および [列の作成] ページなど、UI ページに表示されるフィールド型の名前と説明もフィールド型の定義で構成されます。最も重要な点は、定義にはコンパイルされたフィールド型を含むアセンブリに関する情報が含まれるということです。

ほとんどのフィールド型プロパティが、事実上、名前プロパティ、説明プロパティなど、どのようなフィールド型でも必要とされます。一方、フィールド型の定義では、その特定の型のフィールドから作成された列にのみ関連するフィールド型の特別なプロパティを宣言し、定義することもできます。これらは可変のフィールド型プロパティと呼ばれます。これらのプロパティの値は、列がフィールド型に基づいて作成される場合は常に設定されます。

Windows SharePoint Services 3.0 でユーザー設定フィールド型を認識するには、fldtypes*.xml ファイルにフィールド型の定義がある必要があります。ユーザー設定フィールド型プロジェクトの一環として Microsoft Visual Studio にこれらのファイルを作成します。たとえば、米国 Social Security number を定義したフィールド型に対するフィールド型の定義を持っていた場合、XML ファイルは fldtypes_ssn_MyCompany.xml という名前にします。

注意

... \XML ディレクトリのフィールド定義が他のソリューション プロバイダのものと簡単に識別できるように、体系的な命名パターンに従って、会社名を含めることをお勧めします。(下記の例に示すように) 同じファイルに複数のフィールド定義を持つことができます。これは、常に共に展開されるフィールド型が複数ある場合のポリシーとして推奨されることがあります。ただし、指示を簡素化するために、Windows SharePoint Services 3.0 SDK では、通常、ユーザー設定の各 fldtypes*.xml には 1 つのユーザー設定フィールド型しかないことが前提とされています。Windows SharePoint Services 3.0 に付属する FLDTYPES.XML には多くのフィールド型の定義があります。このファイルの変更はサポートされていません。

以下は、フィールド型の定義に含まれる要素の一覧です。各要素の詳細については、その要素名をクリックしてください。

  <FieldTypes 要素 (フィールド型)>

fldtypes*.xml ファイルのトップ レベルのコンテナ要素。

    <FieldType 要素 (フィールド型)>

フィールド型の定義のトップ レベルのコンテナ要素。

      <Field 要素 (フィールド型)>

フィールド型の単一特性を表す要素。

      <PropertySchema 要素 (フィールド型)>

可変のフィールド型プロパティを定義する要素。

        <Field 要素 (フィールド型のプロパティ スキーマ)>

PropertySchema 要素内のトップ レベルのコンテナ要素。

      <Field 要素 (フィールド型)>

そのフィールド型に基づく列が作成されたときに設定される、ユーザー設定フィールド型の可変プロパティを表す要素。

            <Default 要素 (フィールド型プロパティ スキーマ)>

ユーザー設定フィールド型のプロパティの既定値を表す要素。

      <RenderPattern 要素 (フィールド型)>

特定の状況下でのフィールドのレンダリング方法を定義する要素。

フィールド型の定義の例

次の例では、2 つのユーザー設定フィールド型を定義します。

<?xml version="1.0" encoding="utf-8" ?>
<FieldTypes>
  <FieldType>
    <Field Name="TypeName">SocialSecurityNumber</Field>
    <Field Name="ParentType">Text</Field>
    <Field Name="TypeDisplayName">Social Security Number</Field>
    <Field Name="TypeShortDescription">Social Security Number (123456789, 123-45-6789)
    </Field>
    <Field Name="AllowBaseTypeRendering">TRUE</Field>
    <Field Name="FieldTypeClass">
      AdventureWorks.FieldTypes.SSNField, AdventureWorks.FieldTypes,
      Version=1.0.0.0,Culture=neutral,PublicKeyToken=90734cc53324b79c
    </Field>
    <RenderPattern Name="DisplayPattern">
        <Column HTMLEncode="TRUE" /> 
        <Column HTMLEncode="TRUE" UseRelatedField="TRUE"/> 
    </RenderPattern>
  </FieldType>
  <FieldType>
    <Field Name="TypeName">USAddress</Field>
    <Field Name="ParentType">MultiColumn</Field>
    <Field Name="TypeDisplayName">US Address</Field>
    <Field Name="TypeShortDescription">US Address(12345 NE 123 St. Redmond, WA 98052)
    </Field>
    <Field Name="UserCreatable">TRUE</Field>
    <Field Name="FieldTypeClass">
      AdventureWorks.FieldTypes.USAddressField, AdventureWorks.FieldTypes,
      Version=1.0.0.0,Culture=neutral,PublicKeyToken=90734cc53324b79c
    </Field>
    <PropertySchema>
      <Fields>
        <Field Name="DefaultCity" DisplayName="Default City" 
          MaxLength="50" DisplaySize="15" Type="Text">
          <Default>Redmond</Default>
        </Field>
        <Field Name="DefaultState" DisplayName="Default State" 
          MaxLength="2" DisplaySize="2" Type="Text">
          <Default>WA</Default>
        </Field>
        <Field Name="DefaultZip" DisplayName="Default Zip" MaxLength="5" 
          DisplaySize="5" Type="Text">
          <Default>98052</Default>
        </Field>
      </Fields>
    </PropertySchema>
    <RenderPattern Name="DisplayPattern">
      <Switch>
        <Expr><Column/></Expr>
        <Case Value="">
        </Case>
        <Default>
          <Column SubColumnNumber="0" HTMLEncode="TRUE"/>
          <HTML><![CDATA[<BR>]]></HTML>
          <Column SubColumnNumber="1" HTMLEncode="TRUE"/>
          <HTML><![CDATA[, &nbsp;]]></HTML>
          <Column SubColumnNumber="2" HTMLEncode="TRUE"/>
          <HTML><![CDATA[ &nbsp;]]></HTML>
          <Column SubColumnNumber="3" HTMLEncode="TRUE"/>
          </Default>
      </Switch>
    </RenderPattern>
  </FieldType>
</FieldTypes>

オブジェクト モデルのフィールド型の定義

フィールド型ソリューションを展開すると、Windows SharePoint Services 3.0 オブジェクト モデルのフィールド型の定義に SPFieldTypeDefinition オブジェクトとしてアクセスできます。フィールド型の定義 XML に定義する設定のほとんどは、SPFieldTypeDefinition クラスの読み取り専用メンバとして表されます。このクラスのプロパティのほとんどは、fldtypes*.xml ファイル内の対応する設定と同じ名前です。例外の詳細については、「Field 要素 (フィールド型)」を参照してください。

RenderPattern 要素は、SPFieldTypeDefinition でアクセスできません。PropertySchema 要素は、XML 文字列として PropertySchema プロパティで読み取ることができます。

See Also

タスク

[ウォークスルー] ユーザー設定フィールド型を作成する

概念

ユーザー設定フィールド型

ユーザー設定フィールドクラス

ユーザー設定フィールド型のプロパティのレンダリング