2007年02月14日

プログラミング操作を行う際の列の命名

 こちらも、WSS 2.0/SPS 2003 から変わっていないセオリーです。

ちなみに、作ったリストやライブラリに対してプログラム操作を一切行わない場合は、以下は全く気にする必要がありません。
列名に関してはこちらの通りです。 (→ 列名のしくみ)

見た目は利用者に判り易くするのが一般的です。
つまり、表記名が重要で、列名についても日本語で命名することになります。

Web UI だけで利用する場合は、全く意識する必要が無いのですが、プログラミング操作を行う場合は、日本語で設定してしまうと内部名が UTF-16 でエンコードされた形で設定されてしまうので、識別し難く、かつ、扱い難くなってしまいます。

例えば、「分類」という列を作成すると、内部名は「_x5206__x985e_」になります。
これは、「列の編集」ページでの URL のクエリーストリングで、Field パラメータの所でも確認出来ます。

FieldName_URL.png

%5F というのは、_ (アンダースコア) が URI エンコードされたものです。
なお、文字コードがどの漢字に対応しているかは、こちらのサイトで確認することが出来ます。

・文字コードについて
<http://ash.jp/code/index.htm>

肝心のセオリーは以下の通りです。

・まずは、列名設定の際の仕組みを利用して、最初はプログラミング操作を意識した「英数字」で作成しておきます。
・そして、後から利用者を意識した「日本語」で設定し直します。

作成時はちょっと手間ではありますが、後のことを考えれば惜しまずにやっておいた方が良いです。

プログラミング操作とは以下のものが対象になります。

・クラスライブラリによる操作
・Web サービスによる操作
・コンテンツ クエリ Web パーツのカスタマイズ

他に、「共有サービス」設定の中の「検索の設定」にて、「メタデータ プロパティのマッピング」ページにて、「クロールされたプロパティ」に対するインデックスに含めるかどうかの設定がありますが、ここにもエンコードされた形で展開されるので、英数字で作っておくと識別し易いというのもあります。

banner-tbp-sharepoint.gif
posted by kunitaka at 04:59| Comment(6) | TrackBack(1) | 開発情報

列名のしくみ

 これは、WSS 2.0/SPS 2003 から全く変わっておりません。

MOSS 2007 (WSS 3.0 含む) リストやライブラリを活用する際に、列を追加することは良くあることです。

列には内部名と表記名があります。
内部名は文字通り、内部で使われるものでリストやライブラリ内で一意である必要があります。 また、作成すると後から変更することが出来ません。
表記名は文字通り、見た目の名前で自由に設定することが出来て、後から変更することも可能です。

API レベルでは、InternalName と Title というプロパティに対応します。
API レベルで列を作成する場合は、同時に設定することが可能です。

・SPField.InternalName Property (Microsoft.SharePoint)
<http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spfield.internalname.aspx>
・SPField.Title Property (Microsoft.SharePoint)
<http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spfield.title.aspx>

これに対して、Web UI から作成する場合は・・・

FieldName.png

はい、ご覧の通り「列名」というテキストボックスしかありませんね。
列の作成時に「列名」に指定した文字列が内部名と表記名に設定される形になります。
但し、表記名は後から変更可能なので、作成した後で、列名を選択して「列の編集」にて「列名」を変更すると表記名だけが変わる形になります。

banner-tbp-sharepoint.gif
posted by kunitaka at 04:12| Comment(0) | TrackBack(1) | 解説