32 フレックス・アセットのインポート

WebCenter Sitesには、XMLPostユーティリティと、フレックス・アセットをインポートできるBulkLoaderという一括処理ユーティリティがあります。

XMLPostユーティリティを使用したフレックス・アセットのインポートの詳細は、次の項を参照してください。

BulkLoaderユーティリティの使用方法の詳細は、「BulkLoaderユーティリティによるフレックス・アセットのインポート」を参照してください。

フレックス・アセットのインポートについて

WebCenter Sitesには、フレックス・データ・モデルを使用するアセットをWebCenter Sitesデータベース、XMLPostおよびBulkLoaderにインポートするためのユーティリティが2つ用意されています。XMLPost。WebCenter Sitesには、XMLPostと組み合せて機能する3つの追加のポスト・エレメントaddDatamodifyDataおよびdeleteDataがあります

次のトピックを参照してください。

データ構造フレックス・アセット・タイプのインポートを開始する前に

どちらの方法を使用する場合でも、その前に、WebCenter Sites製品に付属しているRemoteContentPostという標準のポスト・エレメントとXMLPostを使用して、データ設計またはデータ構造のアセット・タイプを作成するか、そのアセット・タイプをフレックス・ファミリにインポートする必要があります。つまり、標準のXMLPostポスト・エレメントを使用して、最初に属性エディタ、フレックス属性、フレックス定義およびフレックス親定義を作成またはインポートする必要があります。

BulkLoaderユーティリティを使用するには、フレックス親もXMLPostを使用してインポートするか作成する必要があります。

フレックス・アセットのインポートについて

データ構造アセット・タイプをインポートしたら、次の2つのいずれかのインポート方法を使用してフレックス・アセットをインポートします。

  • 大量(数千から数十万)のフレックス・アセットをインポートする場合は、BulkLoaderを使用します。

  • 中程度の数(数百)のフレックス・アセットとフレックス親アセットをロードする場合は、ポスト・エレメントを使用します。

BulkLoaderを使用する場合

ベーシック・アセット・モデル内で作業している場合は、通常はXMLPostを使用して、管理システム上のデータベースにアセットをインポートしてから、これらのアセットを配信システムにパブリッシュします。フレックス・アセット・データ・モデルで必要なデータの量は、ベーシック・アセット・モデルの場合よりもはるかに多い傾向にあるため、この方法はフレックス・アセットに応じて変化します。

BulkLoaderユーティリティは、WebCenter Sitesシステムの初期セットアップ時に使用します。「BulkLoaderユーティリティによるフレックス・アセットのインポート」を参照してください。

XMLPostを使用する場合

WebCenter Sitesシステムの初期セットアップ後に通常更新や増分更新を実行するには(たとえば、データの一部またはすべてがERPシステムで生じている場合など)、XMLPostユーティリティとaddDataポスト・エレメントを使用します。

フレックス・アセットのインポートのプロセスの概要

フレックス・モデルを使用しているアセットは相互に依存性があるため、フレックス・アセット・タイプは特定の順序でインポートする必要があります。そして、ベーシック・アセットの場合と同様に、XMLPostを使用してアセットをインポートする前に、該当するアセット・タイプが存在していることや、サイト作成されていることなどが必要になります。

すべてのアセット・タイプ(両方のアセット・モデル)に当てはまる、XMLPostを使用するための基本的な前提条件は、「開始する前に」を参照してください。

これらの基本的な要件が満たされた後に、次の順序でフレックス・アセット・タイプを管理システム上のWebCenter Sitesデータベースにインポートする必要があります。

  1. 属性エディタはオプションです。属性エディタを使用するには、それらをインポートまたは作成してからフレックス属性をインポートします。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。属性エディタを参照してください。

  2. フレックス属性。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。フレックス属性を参照してください。

  3. フレックス親定義。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。フレックス定義とフレックス親定義: サンプル・ファイルを参照してください。

    ノート:

    フレックス親定義を適切な順序でインポートする必要があります。別の親定義によって参照される親定義アセットは、データベース内に存在している必要があります。

    通常は、親定義を階層レベルごとにインポートします(最上位レベルの親定義を最初にインポート)。

  4. フレックス定義。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。フレックス定義とフレックス親定義: サンプル・ファイルを参照してください。

  5. フレックス親アセット。次のいずれかの操作を行います。

    • フレックス親を個別にインポートするか、XMLPostを使用して、フレックス・アセットのフレックス・ファミリ・ツリーの一部としてフレックス親をインポートします。

    • BulkLoaderユーティリティを使用してフレックス・アセットをインポートするには、まずXMLPostを使用してフレックス親アセットをインポートします。構成ファイルでは、RemoteContentPostエレメントをコールするようにXMLPostに指示する必要があります。フレックス・アセットのファミリ・ツリー全体を含めずに親をインポートするため、構成ファイルではaddDataエレメントを指定できません。

    フレックス親を参照してください。

  6. (オプション)まずすべての構造アセット(属性エディタ、フレックス属性、フレックス定義、親定義およびフレックス親)を承認して、管理システムから配信システムにパブリッシュし、BulkLoaderユーティリティを使用してフレックス・アセットを両方のシステムにインポートします。

  7. フレックス・アセット。次のいずれかの操作を行います。

フレックス・アセット・ファミリのデータ構造には依存性が組み込まれているため、前述のステップで示した順序に従う必要があります。また、次の依存性にも留意してください。

  • フレックス親またはフレックス・アセットにasset型の属性がある場合、その属性フィールドの値として指定するアセットを作成またはインポートしている必要があります。

  • asset型の属性の値として設定するアセットは、正しいアセット・タイプのものである必要があります。

  • XMLPostを使用してタイプassetのアセット属性があるアセットを作成しているときには、この属性値にアセットの一意の名前を使用する必要があります。この属性に対して一意でない値はサポートされていません。

カスタムのデータ・デリミタについて

カスタムのデータ・デリミタは、デフォルトのデリミタがコンテンツで使用されている場合に使用されます。XMLPostを使用してインポート、編集または削除するデータで、WebCenter Sitesのデフォルト・スキーマとは異なるデータ区切りスキーマが使用されている場合は(CSのデフォルト・デリミタ文字については次の表を参照してください)、次の表の説明に従ってカスタム・デリミタを指定します。

表32-1 カスタムのデータ・デリミタ

タグ プロパティ 説明

<_xmlnamevaldelim_>

post_xmlnamevaldelim_

オプション。

名前と値のペアを別のペアと区切るためのカスタム文字を指定できます。

カスタム・デリミタを指定するには:

1.構成ファイルでプロパティをyに設定します。

2.XMLファイルでタグを使用して、カスタム・デリミタを定義します。たとえば、次のようにアットマークをデリミタとして使用できます。

<_xmlnamevaldelim_>@</_xmlnamevaldelim_>

デフォルト・デリミタはコロン(:)です。

<_xmlpostequaldelim_>

post_xmlpostequaldelim_

オプション。

属性の名前と値を区切るためのカスタム文字を指定できます。

カスタム・デリミタを指定するには:

1.構成ファイルでプロパティをyに設定します。

2.XMLファイルでタグを使用して、カスタム・デリミタを定義します。たとえば、次のように2つの等号をデリミタとして使用できます。

<_xmlpostequaldelim_>==</_xmlpostequaldelim_>

デフォルト・デリミタは等号(=)です。

<_xmlpostmulvaldelim_>

post_xmlpostmulvaldelim_

オプション。

複数値属性をそれぞれ区切るためのカスタム文字を指定できます。

カスタム・デリミタを指定するには:

1.構成ファイルでプロパティをyに設定します。

2.XMLファイルでタグを使用して、カスタム・デリミタを定義します。たとえば、次のようにハイフンをデリミタとして使用できます。

<_xmlpostmulvaldelim_>-</_xmlpostmulvaldelim_>

デフォルト・デリミタはセミコロン(;)です。

XMLPostとフレックス・アセット・モデルの理解

使用しているアセット・モデルやWebCenter Sites製品にかかわらず、XMLPostユーティリティは同じように動作します。ただし、データを複数のデータベース表に格納するフレックス・アセット用に、WebCenter Sitesでは一部の標準エレメントに処理ロジックが追加されています。この処理ロジックにより、フレックス・アセット・タイプがXMLPostをサポートできるようになっています。

また、WebCenter Sitesには、XMLPostを使用してフレックス・アセットを編集可能にするポスト・エレメント(modifyData)と、XMLPostを使用して任意タイプのアセットを削除可能にするポスト・エレメント(deleteData)の両方が用意されています。

この章では、フレックス・ファミリ内のアセット・タイプ(および属性エディタ)専用の構成ファイルとソース・ファイルの作成に関する追加情報を提供します。必ず「任意タイプのアセットのインポート」も参照して、XMLPostのすべての構成ファイルとソース・ファイルに関する基本情報を確認してください。

フレックス・アセット・モデルでは、次のカテゴリのアセット・タイプに基づいて異なるポスト・エレメントを指定します。

  • フレックス・アセット・タイプとフレックス親アセット・タイプにデータ構造を付与する構造アセット・タイプ。つまり、属性エディタ、属性、フレックス定義およびフレックス親定義です。

    構造アセット・タイプをインポートするには、WebCenter Sitesの標準のポスト・エレメントであるRemoteContentPostを使用してください。(これらのタイプのアセットには、addDataエレメントを使用できません。)

  • フレックス・アセット・タイプとフレックス親アセット・タイプ(製品タイプと製品親タイプなど)。

    状況に応じて、フレックス・アセット・タイプとフレックス親アセット・タイプをインポートするaddDataポスト・エレメントを使用するか、RemoteContentPostポスト・エレメントを使用します。(どちらのポスト・エレメントを使用するかについては、「フレックス親」「XMLPostを使用したフレックス・アセットのインポート」を参照してください。)

どちらの場合も、最初に構成ファイルとソース・ファイルを作成し(「フレックス・アセットのインポートについて」の説明と、この章の補足説明を参照)、その後で、XMLPostユーティリティを起動します(「XMLPostユーティリティの使用」を参照)。

ノート:

参考用として、XMLPostのサンプル・コードが用意されており、このサンプル・コードは、WebCenter Sitesインストーラ・パッケージの/Xcelerate/Samples/XMLPostディレクトリにあります。同じフォルダに、サンプル・ファイルの説明が記載されたreadme.txtファイルも含まれています。

内部名と外部名

アセット・タイプのフレックス・ファミリを作成するときには(「フレックス・アセット・ファミリの作成」「フレックス・ファミリの作成」を参照)、アセット・タイプの内部名と外部名の両方を指定します。

内部名は、データベース内のプライマリ記憶域表で使用されます。外部名は、「新規」フォーム、「編集」フォーム、「調査」フォーム、検索結果リストなどで使用されます。たとえば、属性エディタ・アセット・タイプの内部名はAttrTypesですが、この名前はユーザー・インタフェースでは使用されません。

XMLPostはデータベースと通信するため、構成ファイルとソース・ファイルでは常にアセット・タイプの内部名を使用する必要があります。たとえば、属性エディタの構成ファイルでは、次のように指定します。

postargname2: AssetType
postargvalue2: AttrTypes

フレックス・モデル内の構造アセット・タイプのインポートについて

フレックス・アセット・タイプの構成ファイルとソース・ファイルは、ベーシック・アセットのものとよく似ています。ここでは、構造フレックス・アセット・タイプの構成ファイルとソース・ファイルのサンプルを示します。

構成ファイルとソース・ファイルについては、「任意タイプのアセットのインポート」を参照してください。

次のトピックを参照してください。

属性エディタ

属性エディタのデータは、AttrTypesという名前の1つの表に格納されます。AttrTypesは、属性エディタ・アセット・タイプの内部名です。属性エディタの構成ファイルでは、必ずこの名前を使用してください。

この表では、属性エディタで使用する構成ファイル・プロパティとソース・ファイル・タグを説明しています。

表32-2 属性エディタのタグとプロパティ

タグ プロパティ 説明

<name>

postname

すべてのアセット・タイプで必須。

属性エディタ・アセットの名前。属性名は64文字に制限され、空白は指定できません。

<description>

postdescription

オプション。

属性の使用方法や機能に関する説明。

<AttrTypeText>

postAttrTypeText

必須。

属性エディタのXMLコードが含まれたファイルの名前、または実際のコード。

このタグは、WebCenter Sitesインタフェースの「新規」および「編集」属性エディタ・フォームにある「XML」フィールドと、「参照」ボタンおよび「ファイル内のXML」フィールドに対応しています。

サンプル構成ファイル: 属性エディタ

ここでは、属性エディタ・アセット・タイプのサンプル構成ファイルを示します。この例のすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml
xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 6
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost
xmlpost.argname2: AssetType
xmlpost.argvalue2: AttrTypes
# notice that you use the internal name of the asset type

xmlpost.argname3: authusername
xmlpost.argvalue3: user_editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: user
xmlpost.argname5: inifile
xmlpost.argvalue5: futuretense.ini
xmlpost.argname6: startmenu
xmlpost.argvalue6: New Attribute Editor

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: attreditorpostlog.txt

xmlpost.deletefile: y

postpublication: y

postname: y
postdescription: y
postAttrTypeText: y
サンプル・ソース・ファイル: 属性エディタ

次に示すソース・ファイルは、チェック・ボックス属性エディタ(プレゼンテーション・オブジェクト)をインポートするためのタグが記述されています。前述のサンプル構成ファイルと連係して機能します。

<document>
<publication>AA Illumination</publication>
<name>Editor4-CheckBoxes</name>
<description>Attribute Type Four Check Box</description>
<AttrTypeText>
  <![CDATA[
    <?XML VERSION="1.0"?>
    <!DOCTYPE PRESENTATIONOBJECT SYSTEM "presentationobject.dtd">
    <PRESENTATIONOBJECT NAME="CheckBoxTest">
      <CHECKBOXES LAYOUT="VERTICAL">
        <ITEM>Red</ITEM>
        <ITEM>Green</ITEM>
        <ITEM>Blue</ITEM>
      </CHECKBOXES>
    </PRESENTATIONOBJECT>
  ]]>
</AttrTypeText>
</document>

フレックス属性

フレックス属性は複数の表がありますが、XMLPostはこれらのうち2つの表(メイン記憶域表と、属性アセット・タイプの_Extension表)にのみ書込みを行います。

このため、構成ファイルのソース・ファイル・セクションでは両方の表の列を表すタグを指定する必要があり、ソース・ファイル自体ではこれらのタグを使用する必要があります。次の表では、これらのソース・ファイル・タグと構成ファイル・プロパティを説明しています。

表32-3 フレックス属性のタグとプロパティ

タグ プロパティ 説明

<name>

postname

すべてのアセット・タイプで必須。

属性の名前。属性名は64文字に制限され、空白は指定できません。

<description>

postdescription

オプション。

属性の使用方法や機能に関する説明。

<valuestyle>

postvaluestyle

オプション。

この属性が単一の値を保持できるのか(S)、複数の値を保持できるのか(M)。このタグを使用しない場合は、この属性はデフォルトで単一の値を保持するように設定されます。

<type>

posttype

必須。

属性のデータ型。有効なオプションは、asset、date、float、int、money、string、textまたはblobです。

<assettypename>

postassettypename

<type>assetに設定されている場合は必須。

この属性で保持されているアセット・タイプの名前。

<upload>

postupload

<type>blobに設定されている場合は必須。

この属性の値を格納するディレクトリのパス。このフィールドに入力した値は、wcs_properties.jsonファイルのcc.urlattrpathプロパティで属性表のデフォルトの記憶域ディレクトリ(defdir)として設定された値の後ろに付加されます。

<attributetype>

postattributetype

オプション。

使用する属性エディタの名前(該当する場合)。

<enginename>

postenginename

オプション。

管理システムで使用している検索エンジンの名前。

<charsetname>

postcharsetname

オプション。

使用する検索エンジンの文字セット。デフォルトでは、ISO 8859-1に設定されています。

<editing>

postediting

外部属性のみ。

外部属性は、WebCenter Sitesのフォームを通じて編集可能(L)になるのか、またはサード・パーティ・ツールを使用して外部で編集可能(R)になるのか。Lがデフォルトです。

<storage>

poststorage

外部属性のみ。

外部属性の値は、WebCenter Sitesデータベース内の_Mungo表に格納(L)されるのか、外部表に格納(R)されるのか。Lがデフォルトです。

<externalid>

postexternalid

外部属性のみ。

この外部属性を保持している表の主キーとして機能する列の名前。つまりこの属性を一意に識別する列の名前。

<externalcolumn>

postexternalcolumn

外部属性のみ。

この属性の値を保持している外部表の列の名前。

<externaltable>

postexternaltable

外部属性のみ。

externalidとexternalcolumで指定された列が含まれている外部表の名前。

<publication>

postpublication

オプション。

この属性を使用できるすべてのサイトの名前。

サンプル構成ファイル: フレックス属性

ここでは、この例のすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能する、製品属性アセット・タイプのサンプル構成ファイルを示します。

xmlpost.xmlfilenamefilter: .xml

xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 6
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost
xmlpost.argname2: AssetType
xmlpost.argvalue2: PAttributes
# Notice that this is the internal name of the asset 
# type. The external name of this asset type is
# Product Attribute.

xmlpost.argname3: authusername
xmlpost.argvalue3: user_editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: user
xmlpost.argname5: inifile
xmlpost.argvalue5: futuretense.ini
xmlpost.argname6: startmenu
xmlpost.argvalue6: New Product Attribute

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: attributespostlog.txt

xmlpost.deletefile: y

postpublication: y
postname: y
postattributetype: y
postdescription: y
postvaluestyle: y
posttype: y
postediting: y
poststorage: y
postenginename: y
poststatus: y
postassettypename: y
postupload: y
postexternalid: y
postexternalcolumn: y
postexternaltable: y
postcharsetname: y
サンプル・ソース・ファイル: 属性

ここでは、footnotesという名前の製品属性をインポートするためのサンプル・ソース・ファイルを示します。前述のサンプル構成ファイルと連係して機能します。

<document>
  <publication>AA Illumination</publication>
  <name>footnotes</name>
  <description>Footnotes</description>
  <valuestyle>S</valuestyle>
  <type>URL</type>
  <editing>L</editing>
  <storage>L</storage>
</document>

ノート:

前述したように、フレックス属性のデータ型に関するすべての依存性と制約事項は、WebCenter Sitesインタフェース(「新規」または「編集」フレックス属性フォーム)を通じて属性を作成する場合でも、XMLPostを使用して属性を作成する場合でも同じように当てはまります。フレックス・アセット・ファミリの作成フレックス属性の作成を参照してください。

フレックス定義とフレックス親定義: サンプル・ファイル

フレックス定義とフレックス親定義のアセット・タイプはよく似ているため、これらのアセット・タイプの構成ファイルとソース・ファイルはほぼ同じように記述します。これらのアセット・タイプは、各自のソース・ファイル内でいくつかの同じタグを必要とし、各自の構成ファイル内でいくつかの同じプロパティを必要とします。それぞれのファイルには1つの追加のプロパティ/タグが含まれます。

この項には次のトピックが含まれます:

次の表では、フレックス定義とフレックス親定義のソース・ファイル・タグと構成ファイル・プロパティを示しています。大文字と小文字が区別されます。

表32-4 フレックス定義とフレックス親定義のタグとプロパティ

フレックス定義とフレックス親定義のタグとプロパティ 説明

タグ:

<internalname>

プロパティ:

postinternalname

必須。

アセットの名前。これはすべてのアセット・タイプについて必須の値です。フレックス定義とフレックス親定義の名前は64文字に制限され、空白は指定できません。

タグ:

<internaldescription>

プロパティ:

postinternaldescription

オプション。

アセットの用途または機能の説明。

タグ:

<renderid>

プロパティ:

postrenderid

オプション。フレックス定義専用。

このフレックス定義を使用して作成されるすべてのフレックス・アセットに割り当てられるテンプレート・アセットのID。

タグ:

<parentselectstyle>

プロパティ:

postparentselectstyle

オプション。フレックス親定義専用。

ユーザーがこの定義を使用してフレックス・アセットを作成する場合のフレックス親の選択方法を指定します。

このプロパティ/タグは、「新規」および「編集」親定義フォームの「親選択スタイル」フィールドを表しています。

このタグをソース・ファイル内で使用している場合、有効なオプションはtreepickselectboxesです。

次の4つのタグとプロパティは、親定義とフレックス定義の「新規」フォームと「編集」フォームの「製品親定義」セクションにあるボタンおよびフィールドと同じ機能を実行します。「フレックス・アセット・ファミリの作成」「(条件付き)フレックス・フィルタ・アセットの作成」および「フレックス定義アセットの作成」を参照してください。

該当なし

タグ:

<OptionalSingleParentList>

プロパティ:

postOptionalSingleParentList

このタグを使用して、単一のオプションの親定義を指定します。

タグ:

<RequiredSingleParentList>

プロパティ:

postRequiredSingleParentList

このタグを使用して、単一の必須の親定義を指定します。

タグ:

<RequiredMultipleParentList>

プロパティ:

postRequiredMultipleParentList

このタグを使用して、複数の必須の親定義を指定します。

タグ:

<OptionalMultipleParentList>

プロパティ:

postOptionalMultipleParentList

このタグを使用して、複数のオプションの親定義を指定します。

次の3つのタグとプロパティは、フレックス定義とフレックス親定義の「新規」フォームと「編集」フォームの「属性」セクションにあるボタンおよびフィールドと同じ機能を実行します。「フレックス・アセット・ファミリの作成」「(条件付き)フレックス・フィルタ・アセットの作成」および「フレックス定義アセットの作成」を参照してください。

該当なし

タグ:

<RequiredAttrList>

プロパティ:

postRequiredAttrList

この定義を使用するフレックス親またはフレックス・アセットの必須の属性のリスト。

タグ:

<OptionalAttrList>

プロパティ:

postOptionalAttrList

この定義を使用するフレックス親またはフレックス・アセットのオプションの属性のリスト。

タグ:

<OrderedAttrList>

プロパティ:

postOrderedAttrList

「新規」、「編集」、「調査」などのフォームですべての属性(必須とオプションの両方)が表示される順序。

このタグは、他の属性タグを置き換えます。この項のサンプル・ソース・ファイルでは、このタグをソース・ファイル内で使用する方法を例示しています。

構成ファイルには、その構成ファイルが連係するタイプのアセットのいずれかで使用される可能性のあるすべてのプロパティが含まれている必要があります。個別のソース・ファイルには、それらの個別のアセットを定義するために必要なタグのみが含まれています。

サンプル構成ファイル: フレックス定義

次に、製品定義をインポートするための構成ファイルの例を示します。この例のすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 6
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost
xmlpost.argname2: AssetType
xmlpost.argvalue2: ProductTmpls
# Notice that this is the internal name of the asset type.
# The external name of this asset type is 
# Product Definition.

xmlpost.argname3: authusername
xmlpost.argvalue3: user_editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: user
xmlpost.argname5: inifile
xmlpost.argvalue5: futuretense.ini
xmlpost.argname6: startmenu
xmlpost.argvalue6: New Product Definition

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdefpostlog.txt
xmlpost.deletefile: y

postpublication: y
postinternalname: y
postinternaldescription: y

postparentselectstyle: y

postOptionalSingleParentList: y
postRequiredSingleParentList: y
postRequiredMultipleParentList: y
postOptionalMultipleParentList: y

postRequiredAttrList: y
postOptionalAttrList: y
postOrderedAttrList: y

postrenderid: y
サンプル・ソース・ファイル: フレックス定義

次のソース・ファイル(lighting.xml)は、Lightingという名前の製品定義のソースです。前述のサンプル構成ファイルと連係して機能します。

<document>
<publication>AA Illumination</publication>
<internalname>Lighting</internalname>
<internaldescription>Generic Lighting Template</internaldescription>
<RequiredAttrList>sku</RequiredAttrList>
  <OptionalAttrList>
    productdesc;caseqty;bulbshape;bulbsize;basetype;
    colortemp;meanlength;lightcenterlength;reducedwattage;beamspread;
    fixturetype;ballasttype;colorrenderingindex;minstarttemp;powerfactor;
    totalharmonicdist;spreadbeam10h;spreadbeam10v;spreadbeam50h;
    spreadbeam50v;halogen;operatingposition;filamenttype;bulbimage;
    baseimage;filamentimage;footnotes;price;life;voltage;wattage
  </OptionalAttrList>
<parentselectstyle>treepick</parentselectstyle>
<OptionalMultipleParentList>SubCategory</OptionalMultipleParentList>
</document>

前述の属性のリストを調べてください。1つのタグに複数の値を含める場合は、それぞれの値をセミコロン(;)で区切ります。

オプション/複数の親モデルが使用されていますが、次に示す他の構成も可能です。

<OptionalSingleParentList>flexparentdefinition</OptionalSingleParentList>
<RequiredSingleParentList>flexparentdefinition</RequiredSingleParentList>
<RequiredMultipleParentList>flexparentdefinition</RequiredMultipleParentList>

順序付き属性のリストの指定

属性を特定の順序で表示する必要があるために、<OrderedAttrList>タグを使用するには、<RequiredAttrList>タグと<OptionalAttrList>タグを一緒に使用しないでください。<OrderedAttrList>タグに含まれた文字列で、どの属性が必須でどの属性がオプションなのかを次のように指定します。

  • 必須の属性については、その属性名の前にR (required)を付加します。

  • オプションの属性については、その属性名の前にO (optional)を付加します。

  • これらの属性を必ず順に列記します。

  • それぞれの値を必ずセミコロン(;)で区切ります。

たとえば:

<OrderedAttrList>Rsku;Oproductdesc;Ocaseqty;Obulbshape;Obulbsize;Obasetype;Ocolortemp;Omeanlength;Olightcenterlength;Oreducedwattage;<OrderedAttrList>

フレックス親

XMLPostを使用して、次の2つの方法でフレックス親アセットをインポートできます。

  • 個別にインポートできます。フレックス親ごとに別個のXMLPostソース・ファイルを記述して、標準のRemoteContentPostポスト・エレメントのページ名とアセット・タイプを指定する1つのXMLPost構成ファイルを記述します。BulkLoaderユーティリティを使用するには、まずXMLPostを使用してこの方法でフレックス親アセットをインポートします。

  • フレックス・アセットのフレックス・ファミリ・ツリーの一部としてインポートできます。BulkLoaderではなくXMLPostを使用してフレックス・アセットをインポートするには、フレックス親をフレックス・アセットと結合して、フレックス親をフレックス・ファミリ・ツリーの一部としてインポートします(特定のフレックス・アセットのコンテキスト内で)。フレックス・アセットごとに別個のXMLPostソース・ファイルを記述して、そのフレックス・アセットのすべての親をそのソース・ファイル内で指定します。XMLPostは、ソース・ファイルの解析時に、1つのフレックス・アセットと複数のフレックス親の変数を作成します(これらの変数がまだ存在しない場合)。

このトピックでは、それらを個別にインポートするためのソース・ファイルと構成ファイルを紹介します。フレックス・アセットとともにそれらをインポートする方法の詳細は、「XMLPostを使用したフレックス・アセットのインポート」を参照してください。

このトピックの内容は次のとおりです。

サンプル構成ファイル: 個別のフレックス親

次に、製品親をインポートするための構成ファイルの例を示します。この例のすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml

xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 6
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost
xmlpost.argname2: AssetType
xmlpost.argvalue2: ProductGroups
# notice that you use the internal name of the asset type

xmlpost.argname3: authusername
xmlpost.argvalue3: user_editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: user
xmlpost.argname5: inifile
xmlpost.argvalue5: futuretense.ini
xmlpost.argname6: startmenu
xmlpost.argvalue6: New Product Parent

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdefpostlog.txt
xmlpost.deletefile: y

postpublication: y
postinternalname: y
postinternaldescription: y
postflexgrouptemplateid: y
postfgrouptemplatename: y
postParentList: y
postcat1: y
postcat2: y
サンプル・ソース・ファイル: 個別のフレックス親

次のソース・ファイルは、Halogenという名前の製品親(フレックス親)を作成します。前述のサンプル構成ファイルと連係して機能します。

<document>
<publication>AA Illumination</publication>
<internalname>Halogen</internalname>
<fgrouptemplatename>Category</fgrouptemplatename>
<cat1>Halogen</cat1>
</document>

前述のとおり、RemoteContentPostポスト・エレメントを使用する場合は、親アセットごとに1つのソース・ファイルを用意する必要があります。

XMLPostを使用したフレックス・アセットのインポート

XMLPostでフレックス・アセットをインポートする前に、構造アセット・タイプ(属性、フレックス定義およびフレックス親定義)をインポートする必要があります。

フレックス・アセットには、RemoteContentPostaddDataのポスト・エレメントを使用します。

  • addDataポスト・エレメントは、フレックス・アセットの親アセットを作成します(親アセットがまだ存在していない場合)。たとえば、BulkLoaderユーティリティを使用していない場合は、このポスト・エレメントをフレックス・アセットの初期インポート用に使用します。

    addDataポスト・エレメントを使用する場合は、ソース・ファイルでフレックス・アセットのファミリ・ツリー全体を指定する必要があります。フレックス・アセットごとに別個のソース・ファイルが必要ですが、そのソース・ファイル内ではそのフレックス・アセットの親をいくつでも指定可能であり、XMLPostはそのフレックス・アセットとその親を作成します(親がまだ存在していない場合)。

  • RemoteContentPostエレメントは、フレックス・アセットを作成して、それらの親の値を設定します。これらの親は存在している必要があります。たとえば、BulkLoaderを使用して初期インポートを実行してから、XMLPostを使用する場合は、このポスト・エレメントを使用します。

    RemoteContentPostを使用してフレックス・アセットをインポートする場合は、ソース・ファイルで、そのアセットの直接の親のみを指定する必要があります(その結果としてソース・ファイル内で必要なコード行が少なくなります)。ただし、その新しいフレックス・アセットの新しいフレックス親を作成するには、addDataポスト・エレメントを使用して、ソース・ファイル内でファミリ・ツリー全体を指定します。

この項には次のトピックが含まれます:

フレックス・アセットの構成ファイル・プロパティとソース・ファイル・タグ

構造アセット・タイプの場合と同様に、構成ファイルとソース・ファイル内ではフレックス・アセット・タイプとフレックス親アセット・タイプの内部名を使用する必要があります。ただし、構造アセット・タイプの場合とは異なり、アセット・タイプの引数を構成ファイルに記述する必要はありません。フレックス・アセットのソース・ファイルにはそのアセット・タイプを指定する必須タグが含まれているため、この情報を構成ファイル内で繰り返し指定する必要はありません。

この項には次のトピックが含まれます:

addDataポスト・エレメントの場合

次の表は、addDataポスト・エレメントを使用している場合の、フレックス・アセット(およびそれらのフレックス親)のソース・ファイル・タグと構成ファイル・プロパティを示しています。大文字と小文字が区別されることに注意してください。

表32-5 addDataポスト・エレメント

タグ プロパティ 説明

<_ASSET_>

post_ASSET_

必須。

アセット・タイプの内部名。たとえば、ProductsAArticlesおよびAImages

<_TYPE_>

post_TYPE_

必須。

このフレックス・アセットが使用しているフレックス定義の名前。

<_ITEMNAME_>

post_ITEMNAME_

必須。

アセットの名前。

<_ITEMDESCRIPTION_>

post_ITEMDESCRIPTION_

オプション。

アセットの説明。

<_GROUP_parentDefinitionName>

post_GROUP_parentDefinitionName

オプション。

フレックス・アセットの親。構成ファイルには、それぞれの考えられる親定義のタグが含まれている必要があります。たとえば、フレックス・アセットがDivisionおよびDepartmentという名前の2つの親定義のいずれかを使用する親を持っている可能性がある場合は、構成ファイルには、次のようにそれぞれの親定義のタグを定義する2つのプロパティが含まれている必要があります。

post_Group_Department

post_Group_Division

<_GROUPDESCRIPTIONS_>

post_GROUPDESCRIPTIONS_

オプション。

指定する親が新規の場合は、親定義の説明を含めます。

<displaytype>

postdisplaytype

オプション。

フレックス・アセットのTemplateアセットの名前。

<AttributeName>

postAttributeName

タイプのアセットが持つことのできる属性(必須とオプションの両方)ごとに構成ファイルにプロパティを含めます。そして、そのアセットに適用する必須属性とオプション属性ごとにソース・ファイルで値を指定する必要があります。

たとえば、SKUという名前の属性の場合は、ソース・ファイルにpostSKUというプロパティと次のようなコード行を含めます。

<SKU>123445</SKU>

RemoteContentPostポスト・エレメントの場合

次の表は、RemoteContentPostポスト・エレメントを使用している場合の、フレックス・アセット(およびそれらのフレックス親)のソース・ファイル・タグと構成ファイル・プロパティを示しています。大文字と小文字が区別されます。

表32-6 RemoteContentPostポスト・エレメント

タグ プロパティ 説明

<_DEFINITION_>

post_DEFINITION_

必須。

このフレックス・アセットが使用しているフレックス定義の名前。

(post_TYPEも使用できます。)

<_ITEMNAME_>

post_ITEMNAME_

必須。

アセットの名前。

<_ITEMDESCRIPTION_>

post_ITEMDESCRIPTION_

オプション。

アセットの説明。

<ParentList>

post_ParentList

オプション。

フレックス・アセットの直接の親。

<template>

posttemplate

オプション。

フレックス・アセットのTemplateアセットの名前。

(postdisplaytypeも使用できます。)

<AttributeName>

postAttributeName

タイプのアセットが持つことのできる属性(必須とオプションの両方)ごとに構成ファイルにプロパティを含めます。そして、そのアセットに適用する必須属性とオプション属性ごとにソース・ファイルで値を指定する必要があります。

たとえば、SKUという名前の属性の場合は、ソース・ファイルにpostSKUというプロパティと次のようなコード行を含めます。

<SKU>123445</SKU>

addDataのサンプル・フレックス・アセット構成ファイル

ここでは、製品アセット・タイプのサンプル構成ファイルを示します。このファイルは、addDataポスト・エレメントを呼び出して、このサンプル・ファイルのすぐ後に掲載しているサンプル・ソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml

#xmlpost.proxyhost: Future
#xmlpost.proxyport: 80

xmlpost.url: http://wally9:80/servlet/ContentServer

# notice that it uses addData 
# rather than RemoteContentPost
xmlpost.numargs: 5

xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Gator/XMLPost/addData

# Notice that you do not need to provide
# the name of the asset type because that information
# is required in the source files for flex assets.

xmlpost.argname2: inifile
xmlpost.argvalue2: futuretense.ini
xmlpost.argname3: authusername
xmlpost.argvalue3: editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: xceleditor
xmlpost.argname5: startmenu
xmlpost.argvalue5: New Product

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdatalog.txt

xmlpost.postdeletefile: y

post_ASSET_: y
post_ITEMNAME_: y
post_TYPE_: y
post_GROUP_Category: y
post_GROUP_SubCategory: y
postpublication: y
postsku: y
postproductdesc: y
postcaseqty: y
postbulbshape: y
postbulbsize: y
postbasetype: y
postcolortemp: y
postmeanlength: y
postlightcenterlength: y
postreducedwattage: y
postbeamspread: y
postfixturetype: y
postballasttype: y
postcolorrenderingindex: y
postminstarttemp: y
postpowerfactor: y
posttotalharmonicdist: y
postspreadbeam10h: y
postspreadbeam10v: y
postspreadbeam50h: y
postspreadbeam50v: y
posthalogen: y
postoperatingposition: y
postfilamenttype: y
postbulbimage: y
postbaseimage: y
postfilamentimage: y
postfootnotes: y
postcat1: y
postcat2: y
postprice: y
postvoltage: y
postwattage: y
postlife: y

構成ファイル・プロパティとBLOB (またはURL)型の属性

アセット・タイプがblob(またはurl)型の属性を持っている場合は、構成ファイルには、その属性を参照するタグのエントリが2つ含まれている必要があります(1つはその属性を指定するエントリ、もう1つは、その属性(アップロード・フィールド)の内容が含まれているファイルの名前、またはテキスト・フィールド(blob型またはURL型のテキスト・フィールド)に直接入力されたテキストから作成されるファイルにWebCenter Sitesが付与する名前のいずれかを指定するエントリ)。

アップロード・フィールドとしてのBLOB (またはURL)型の属性

blob型の属性はアップロード・フィールドにすることができます。たとえば、footnotesという名前のblob型の属性は、テキストを入力するためのテキスト・フィールドのかわりに、ファイルを探すための「参照」ボタンが付いているアップロード・フィールドです。したがって、これは次の2つのプロパティを持ちます。

  • posttag: この例では、postfootnotes: y

  • filetag: この例では、filefootnotes: y

この属性の値をソース・ファイルに含める場合は、次の書式に従ってください。

<footnotes>FileName.txt</footnotes>

このタイプのフィールド(属性)を持つアセットをインポートする場合、そのフレックス・アセットの属性値として保管するテキストが含まれているファイルは、そのアセットのソース・ファイルと同じディレクトリに配置されている必要があります。

テキスト・フィールドとしてのBLOB (またはURL)型の属性

仮定のfootnotes属性が、ファイルではなくテキスト入力を直接受け付けるフィールドである場合は、構成ファイルで次のプロパティを指定する必要があります。

  • postfootnotes: y

  • postfootnotes_file: y

また、この属性の値をソース・ファイルに含める場合は、次の書式に従ってください。

<footnotes>lots and lots of text</footnotes>
<footnotes_file>FileNameYouWantUsed.txt</footnotes_file>

addDataのサンプル・フレックス・アセット・ソース・ファイル

次のソース・ファイルは、前の項で紹介したサンプルのフレックス・アセット構成ファイルと連係して機能します。

この項には次のトピックが含まれます:

サンプル・ファイル

このソース・ファイルでは、10004という名前の電球製品を、Lightingという名前の製品定義から作成します。

<document>

# the first three tags are required
<_ASSET_>Products</_ASSET_>
<_ITEMNAME_>10004</_ITEMNAME_>
<_TYPE_>Lighting</_TYPE_>

# This tag is required because the publication is
# not set in the configuration file
<publication>AA Illumination</publication>

# This tag assigns a Template asset to the product
<displaytype>Lighting Detail</displaytype>

# The rest of these tags set flex attribute values for the product
<price>5</price>
<sku>10004</sku>
<productdesc>F4T5/CW</productdesc>
<caseqty>24</caseqty>
<bulbshape>T</bulbshape>
<bulbsize>5</bulbsize>
<basetype>Miniature Bipin (G5)</basetype>
<colortemp>4100</colortemp>
<meanlength></meanlength>
<lightcenterlength></lightcenterlength>
<reducedwattage></reducedwattage>
<beamspread></beamspread>
<fixturetype></fixturetype>
<ballasttype></ballasttype>
<colorrenderingindex>60</colorrenderingindex>
<minstarttemp></minstarttemp>
<powerfactor></powerfactor>
<totalharmonicdist></totalharmonicdist>
<spreadbeam10h></spreadbeam10h>
<spreadbeam10v></spreadbeam10v>
<spreadbeam50h></spreadbeam50h>
<spreadbeam50v></spreadbeam50v>
<halogen></halogen>
<operatingposition></operatingposition>
<filamenttype></filamenttype>
<bulbimage>BLB-260.gif</bulbimage>
<baseimage>BLB-250.gif</baseimage>
<filamentimage></filamentimage>
<footnotes>
</footnotes>
<life>6000</life>
<voltage></voltage>
<wattage>4</wattage>
<cat1>Fluorescent</cat1>
<cat2>Preheat Lamps</cat2>

<!-- GROUP tags that specify the parents. Remember that you have to
specify the entire family tree for the flex asset when using the addData posting element-->

<_GROUP_Category>Fluorescent</_GROUP_Category>
<_GROUP_SubCategory>Preheat Lamps</_GROUP_SubCategory>
</document>

このソース・ファイルは、製品の親をPreheat Lampsに設定して、Preheat Lampsの親をFluorescentに設定しています。

特殊文字の処理

XMLPostはHTTP POSTプロトコルを使用するため、データをHTTPストリームとして送信します。したがって、特定の文字は特殊文字として扱われ、これらの特殊文字はURLに含まれるため、これらの特殊文字をエンコードする必要があります。

ソース・ファイルで、いずれかの属性に特殊文字が含まれている場合は、特殊文字の出現箇所をすべて、対応するURLエンコード・シーケンスに置き換えます。特殊文字については、<a href="website-development-tag-technologies.html#GUID-9D1BF05F-C11C-4223-A572-335AE8B828EF" title='Use the hexadecimal character representation of special (non-alphanumeric) characters in your XML or JSP instead of the special characters themselves. For example, to specify a space as part of a variable value, you can use this line: 「特殊文字の値について」を参照してください。

フレックス・アセットとそれらの親

GROUPタグは、ファミリ・ツリー内の親を指定します。XMLPostは、addDataポスト・エレメントを使用して、ソース・ファイルのGROUPセクションを解析する際に、次の操作を実行します。

  1. このフレックス定義を使用しているアセットに対して適正な親定義を特定します。

  2. それぞれの適正な親定義について、その定義の親がソース・ファイルで指定されているかどうかを確認します。

    • 指定されている場合は、親を設定します。親がまだ存在していない場合は、その親を作成します。

    • 指定されていない場合は、その親を設定しません。ただし、その定義の親が必須である場合は、エラーを返します。

フレックス・アセットの親の指定

フレックス・アセットの親を指定するには、その親の名前を<_GROUP_parentDefinitionName>タグ内にネストした形で指定します。たとえば:

<_GROUP_subcategory>Blacklights</_GROUP_subcategory>

このsubcategoryは、Blacklightsという親(製品親)の親定義の名前です。

前述のとおり、フレックス・アセットのファミリ・ツリー全体を指定する必要があります。たとえば、電球(Blacklight)の親を指定するだけでなく、祖父母も指定します。

<_GROUP_subcategory>Blacklights</_GROUP_subcategory>

<_GROUP_category>Fluorescent</_GROUP_category>

親の属性値の設定

ある属性が複数の親に属することができる場合は、XMLPostで、その属性が属する親を指定します。たとえば、bulbshape属性が製品ではなく親に割り当てられているとします。この場合は、次のようなコード行を含めます。

<bulbshape>Halogen=T</bulbshape>
フレックス・ソース・ファイル内の複数値の設定

親を設定するすべてのタグと、属性を指定するすべてのタグは(その属性が複数の値を受け付けるように構成されている場合)、複数の値を扱うことができます。これらのタグは次のとおりです。

  • _GROUP_parentDefinitionName

  • _GROUPDESCRIPTIONS_

  • 属性タグ

1つのフレックス・アセットの同じ定義に基づいた複数の親がある場合は、それらの親の名前をすべて同じ_GROUP_parentDefinitionName タグで指定して、これらの親の名前をセミコロン(;)で区切ります。

たとえば:

<_GROUP_Cateogry>Incandescent;Halogen</_GROUP_Category>

XMLPostはこのアセットをインポートする際に、その親をIncandescentおよびHalogenとして設定します(これらは両方ともCategory親定義のものです)。IncandescentとHalogenがまだ存在していない場合は、XMLPostはこれらを作成します。

複数の親の複数の属性値を設定するには、同様の構文を使用します。再び仮定として、Category定義では、この定義の親がbulbshape属性の値を保持していることが必要だとします。この場合は、<_GROUP_Category>タグで指定された両方の親のbulbshape属性の値を次のように設定できます。

<bulbshape>Incandescent=E;K:Halogen=T</bulbshape>

この構文について、次のことに注意してください。

  • parentName=attributeValueという形式の名前と値のペアを使用して属性値を設定します(Halogen=T)。

  • コロンを使用して、それぞれの親を区切ります。(Incandescent=S:Halogen=T)。

  • 親が複数の属性値を持っている場合は、セミコロンを使用してその親の属性値を区切ります(Incandescent=E;K:Halogen=T)。

前述のとおり、同じタグで指定する親の説明を指定します。たとえば:

<_GROUPDESCRIPTIONS>
Incandescent=From Detroit:Halogen=From Chicago
</_GROUPDESCRIPTIONS>

RemoteContentPostのサンプル・フレックス・アセット構成ファイル

ここでは、製品アセット・タイプのサンプル構成ファイルを示します。この例のすぐ後に掲載しているソース・ファイルと連係して機能します。

xmlpost.xmlfilenamefilter: .xml

#xmlpost.proxyhost: Future
#xmlpost.proxyport: 80

xmlpost.url: http://wally9:80/servlet/ContentServer
xmlpost.numargs: 5

xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Xcelerate/Actions/RemoteContentPost

# Notice that you do not need to provide
# the name of the asset type because that information
# is required in the source files for flex assets.

xmlpost.argname2: inifile
xmlpost.argvalue2: futuretense.ini
xmlpost.argname3: authusername
xmlpost.argvalue3: editor
xmlpost.argname4: authpassword
xmlpost.argvalue4: xceleditor
xmlpost.argname5: startmenu
xmlpost.argvalue5: New Product

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdatalog.txt

xmlpost.postdeletefile: y

postpublication: y

post_ASSET_: y
post_ITEMNAME_: y
post_DEFINITION_: y
posttemplate: y

postsku: y
postproductdesc: y
postcaseqty: y
postbulbshape: y
postbulbsize: y
postbasetype: y
postcolortemp: y
postmeanlength: y
postlightcenterlength: y
postreducedwattage: y
postbeamspread: y
postfixturetype: y
postballasttype: y
postcolorrenderingindex: y
postminstarttemp: y
postpowerfactor: y
posttotalharmonicdist: y
postspreadbeam10h: y
postspreadbeam10v: y
postspreadbeam50h: y
postspreadbeam50v: y
posthalogen: y
postoperatingposition: y
postfilamenttype: y
postbulbimage: y
postbaseimage: y
postfilamentimage: y
postfootnotes: y
postcat1: y
postcat2: y
postprice: y
postvoltage: y
postwattage: y
postlife: y

postParentList: y

RemoteContentPostのサンプル・フレックス・アセット・ソース・ファイル

次のソース・ファイルは、前の項で紹介したサンプル構成ファイルと連係して機能します。このソース・ファイルでは、10004という名前の電球製品を、Lightingという名前の製品定義から作成します。

<document>

# the first three tags are required
<_ASSET_>Products</_ASSET_>
<_ITEMNAME_>10004</_ITEMNAME_>
<_DEFINITION_>Lighting</_DEFINITION_>

# This tag is required because the publication is
# not set in the configuration file
<publication>AA Illumination</publication>

# This tag assigns a Template asset to the product
<template>Lighting_Detail</template>

# The rest of these tags set flex attribute values for the product
<price>5</price>
<sku>10004</sku>
<productdesc>F4T5/CW</productdesc>
<caseqty>24</caseqty>
<bulbshape>T</bulbshape>
<bulbsize>5</bulbsize>
<basetype>Miniature Bipin (G5)</basetype>
<colortemp>4100</colortemp>
<colorrenderingindex>60</colorrenderingindex>
<bulbimage>BLB-260.gif</bulbimage>
<baseimage>BLB-250.gif</baseimage>
<filamentimage></filamentimage>
<life>6000</life>
<voltage></voltage>
<wattage>4</wattage>
<cat1>Fluorescent</cat1>
<cat2>Preheat Lamps</cat2>

# this tag sets the immediate parents only
<ParentList>Preheat Lamps</ParentList>

</document>

このソース・ファイルでは、製品のいくつかの属性値を設定して、その直接の親をPreheat Lampsに設定しています。この親は存在している必要があります。

XMLPostを使用したフレックス・アセットの編集

XMLPostでは、属性の値およびアセットの親(フレックス・アセットの親または親の親)を編集できます。

属性アセット、フレックス定義アセットおよびフレックス親定義アセットは、XMLPostを使用して編集することはできません。

フレックス・アセットの属性値を編集するには、ソース・ファイルには、変更する属性とそのアセットの名前のみが含まれている必要があります。

フレックス親の属性値を編集するには、フレックス・アセットのコンテキストを提供する必要があります。ソース・ファイルでは、そのフレックス・アセットの名前が指定されている必要があり、そうすることで、変更する親属性と親のみを参照できます。ただし、XMLPostが最初に扱うフレックス・アセットを指定する必要があります。その結果として、XMLPostはファミリ・ツリー内を移動できるようになります。

次のトピックを参照してください。

フレックス・アセットを編集するための構成ファイル

フレックス・アセットを編集するための構成ファイルには、pagename引数と追加のタグおよびプロパティという2つの相違点があります。

pagename引数

pagename引数は、OpenMarket/Gator/XMLPost/modifyDataに設定する必要があります。

たとえば:

xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Gator/XMLPost/modifyData

構成ファイルとソース・ファイルを指定して、XMLPostをコマンドラインから通常どおりに起動します。

追加のタグとプロパティ

フレックス・アセットの編集時には、次のオプションのタグとプロパティを使用できます。

  • タグ: <_REMOVE_parentDefinitionName>

  • プロパティ: post_REMOVE_parentDefinitionName

これにより、そのフレックス・アセットから親が削除されます。

同じ名前(_ITEMNAME_)、同じアセット・タイプ(_ASSET_)および同じサブタイプ(_TYPE_)の別のアセットが同じサイトにある場合は、次のオプションのタグとプロパティを使用して、変更するアセットを指定できます。
  • タグ: <_ID_>

  • プロパティ: post_ID_

フレックス・アセットを編集するためのソース・ファイル

編集対象のフレックス・アセットのソース・ファイルには、そのアセットのすべての情報が含まれている必要はなく、変更する情報のみを指定する必要があります。指定されていない属性は一切変更されません。

この項には次のトピックが含まれます:

属性の値の変更

属性の値を変更するには、その属性の新しい値をソース・ファイル内で指定します。XMLPostはインポートの実行時に、ソース・ファイルで指定された値によって古い値を上書きします。

次のサンプル・ソース・ファイルでは、「addDataのサンプル・フレックス・アセット・ソース・ファイル」で定義された10004という名前の製品の2つの属性値(bulbshapeとbulbsize)を変更します。

<document>
<!-- predefined xml tags (required) -->
<_ASSET_>Products</_ASSET_> 
<_ITEMNAME_>10004</_ITEMNAME_>
<_TYPE_>Lighting</_TYPE_>
<!-- attribute xml tags -->
<bulbshape>E</bulbshape> 
<bulbsize>9</bulbsize> 
</document>
属性値の削除
  • 属性値を削除して空のままにするには、その属性の名前を指定する行を記述して、その属性の値として_EMPTY_を指定します。

    たとえば:

    <bulbsize>_EMPTY_</bulbsize>
    

ノート:

複数値属性を空にするには、_EMPTY_のかわりに、複数値デリミタ(デフォルトで;文字)を設定します。  たとえば: <someattribute>;</someattribute>

親の属性値を編集することもできます。たとえば、bulbsize属性が親レベルで設定されているとします。その場合は、次のコード行によって2つの親が設定されて、それぞれの親のbulbsizeの値が指定されます。

<_GROUP_SubCategory>All-Weather Lamps;Appliance Lamps
</GROUP_SubCategory>
<bulbsize>All-Weather Lamps=10:Appliance Lamps=8</bulbsize>

オプション1

次のコード行は、All-Weather Lampsという親のbulbsizeをクリアします。

<bulbsize>All-Weather Lamps=_EMPTY_:Appliance Lamps=8</bulbsize>

オプション2

別の方法として、次のコード行のみを使用して、Appliance Lampsの値を繰り返し指定することを回避できます。

<bulbsize>All-Weather Lamps=_EMPTY_</bulbsize>
親関係の編集

XMLPostを使用して、フレックス・アセットの親関係を次のように編集できます。

  • 既存の親に別の親を追加できます。

  • 親を別の親に変更できます。

GROUP_parentDefinitionNameタグの動作は、属性タグの動作とは異なります。

  • 属性タグを使用している場合は、XMLPostは古い値を新しい値によって上書きします。

  • GROUP_parentDefinitionNameタグを使用すると、親定義名が同じであっても、XMLPostは古い親を新しい親で上書きしません。アセットの親のリストに新しい親が追加されますが、これは目的の処理ではない可能性があります。

  1. 既存の親のリストに別の親を追加するには、そのためのコード行をソース・ファイルに含めます。たとえば:
    <_GROUP_SubCategory>Blacklights</_GROUP_SubCategory>
    
    
  2. 親を削除するには、<_REMOVE _>タグを使用します。親を置換する場合を除いて、必要な親を削除しないように十分に注意してください。たとえば:
    <_REMOVE_Processor>Appliance Lamps</_REMOVE_Processor>
    

XMLPostを使用したアセットの削除

XMLPostを使用して、任意のタイプの任意のアセットを削除できます。さらに読み進めると、次のことを理解できるようになります。

  • 構成ファイルでは、deleteDataエレメントをコールするようにXMLPostに指示する必要があります。

    たとえば:

    xmlpost.argname1: pagename
    xmlpost.argvalue1: OpenMarket/Gator/XMLPost/deleteData
    
  • また、これらのソース・ファイル・タグおよび構成ファイル・プロパティも必要です。

    <_ASSET_>/post_ASSET_: 削除するアセットのアセット・タイプを指定します。

    <_ITEMNAME>/post_ITEMNAME_: 削除するアセットを指定します。

XMLPostがこのポスト・エレメントを使用する場合、XMLPostはそのアセットのStatus列の値をvoidを意味するVOに変更します。(このアセットをデータベースから物理的に削除するわけではありません)。

次のトピックを参照してください。

アセットを削除するための構成ファイル

次に、サンプル構成ファイルを示します。

xmlpost.xmlfilenamefilter: .xml

xmlpost.url: http://izod19/servlet/ContentServer
xmlpost.numargs: 4
xmlpost.argname1: pagename
xmlpost.argvalue1: OpenMarket/Gator/XMLPost/deleteData
xmlpost.argname2: authusername
xmlpost.argvalue2: user_editor
xmlpost.argname3: authpassword
xmlpost.argvalue3: user
xmlpost.argname4: inifile
xmlpost.argvalue4: futuretense.ini

xmlpost.success: Success
xmlpost.failure: Error
xmlpost.logfile: productdefpostlog.txt
xmlpost.deletefile: y

postpublication: y
post_ASSET_: y
post_ITEMNAME_: y

XMLPostを通常どおりコマンドラインから起動します。

アセットを削除するためのソース・ファイル

アセットを削除するためのソース・ファイルは小さくてシンプルです。たとえば:

<document> 
<_ASSET_>Products</_ASSET_> 
<_ITEMNAME_>Pentium 90</_ITEMNAME_> 
<publication>my publication</publication>
</document>

このコードは、Pentium 90という名前の製品アセットを削除するようにXMLPostに指示します(XMLPostはPentium 90のステータスをvoidを意味するVOに変更します)。