スキーマの構造

<srcschema>の基本的な構造は次のとおりです。

<srcSchema>
    <enumeration>
        ...          //definition of enumerations
    </enumeration>
   
    <element>         //definition of the root <element>    (mandatory)

        <compute-string/>  //definition of a compute-string
        <dbindex>
            ...        //definition of indexes
        </dbindex>
        <key>
            ...        //definition of keys
        </key>
        <sysFilter>
            ...           //definition of filters
        </sysFilter>
        <attribute>
            ...             //definition of fields
        </attribute>
    
            <element>           //definition of sub-<element> 
                  <attribute>           //(collection, links or XML)
                  ...                         //and additional fields
                  </attribute>
                ...
            </element>
      
    </element> 

        <methods>                 //definition of SOAP methods
            <method>
                ...
            </method>
            ...
    </methods>  
          
</srcSchema>

データスキーマの XML ドキュメントには、name 属性と namespace 属性が設定された <srcschema> ルート要素が必要です。これにより、スキーマの名前と名前空間が指定されます。

<srcSchema name="schema_name" namespace="namespace">
...
</srcSchema>

次のXMLコンテンツを使用して、データスキーマの構造を説明します。

<recipient email="John.doe@aol.com" created="2009/03/12" gender="1"> 
  <location city="London"/>
</recipient>

対応するデータスキーマを使用して、次の操作を行います。

<srcSchema name="recipient" namespace="cus">
  <element name="recipient">
    <attribute name="email"/>
    <attribute name="created"/>
    <attribute name="gender"/>
    <element name="location">
      <attribute name="city"/>
   </element>
  </element>
</srcSchema>

説明

スキーマのエントリポイントは、スキーマのメイン要素です。メイン要素はスキーマと同じ名前なので、識別は容易です。また、メイン要素はルート要素の子でなければなりません。コンテンツの記述は、この要素から始まります。

この例では、主要な要素は次の行で表されます。

<element name="recipient">

メイン要素の後に続く要素​<attribute>​と​<element>​を使用して、XML構造内のデータ項目の場所と名前を定義できます。

サンプルスキーマでは、次のようになります。

<attribute name="email"/>
<attribute name="created"/>
<attribute name="gender"/>
<element name="location">
  <attribute name="city"/>
</element>

次の規則に従う必要があります。

  • 各​<element>​と​<attribute>​は、name​属性を介して名前で識別する必要があります。

    重要

    要素名は簡潔で、できれば英語で記述し、XML命名規則に従って、許可された文字のみを含める必要があります。

  • XML構造には、<element>​要素と​<element>​要素のみを含めることができます。<attribute>

  • <attribute>​要素は、<element>​内に一意の名前を持つ必要があります。

  • 複数行のデータ文字列では、<elements>​を使用することをお勧めします。

データタイプ

データ型は、<attribute>​要素と​<element>​要素の​type​属性を介して入力されます。

詳細なリストは、<attribute>要素<element>要素の説明に記載されています。

この属性が空の場合、要素に子要素が含まれていない限り、string​がデフォルトのデータ型になります。 その場合は、要素を階層的に構成する(この例では​<location>​要素)ためにのみ使用します。

スキーマでは、次のデータ型がサポートされています。

  • string:文字列。例:名、町名等

    サイズは、length​属性(オプション、デフォルト値は「255」)を使用して指定できます。

  • boolean:ブール値フィールド可能な値の例:true/false、0/1、yes/noなど

  • byte, short, long:整数(1バイト、2バイト、4バイト)。例:年齢、口座番号、ポイント数等

  • 重複:重複精度浮動小数点数。例:価格、料金等

  • date, datetime:日付と日付+時間。例:生年月日、購入年月日等

  • datetimenotz:タイムゾーンデータを含まない日付+時刻。

  • timespan:継続時間。例:年功序列。

  • メモ:長いテキストフィールド(複数行)例:説明、コメントなど

  • uuid:GUIDをサポートする「uniqueidentifier」フィールド(Microsoft SQL Serverでのみサポート)。

    メモ

    Microsoft SQL Server以外のエンジンに​uuid​フィールドを含めるには、「newuuid()」関数を追加し、デフォルト値で完了する必要があります。

次に、入力したタイプのスキーマ例を示します。

<srcSchema name="recipient" namespace="cus">
  <element name="recipient">
    <attribute name="email" type="string" length="80"/>
    <attribute name="created" type="datetime"/>
    <attribute name="gender" type="byte"/>
    <element name="location">
      <attribute name="city" type="string" length="50"/>
   </element>
  </element>
</srcSchema>

Adobe Campaign/DBMSデータのタイプのマッピング

次の表に、様々なデータベース管理システム用にAdobe Campaignで生成されたデータのタイプのマッピングを示します。

Adobe Campaign
PosgreSQL
Oracle
Teradata
DB2
MS SQL
文字列
VARCHAR(255)
VARCHAR2 (NVARCHAR2 (unicodeの場合)
VARCHAR (VARCHAR CHARACTER SET UNICODE if Unicode)
VARCHAR
VARCHAR (NVARCHAR if unicode)
ブール値
SMALLINT
NUMBER(3)
NUMERIC(3)
SMALLINT
TINYINT
Byte
SMALLINT
NUMBER(3)
NUMERIC(3)
SMALLINT
TINYINT
短い
SMALLINT
NUMBER(5)
SMALLINT
SMALLINT
SMALLINT
重複
重複精度
FLOAT
FLOAT
重複
FLOAT
長いテキスト
INTEGER
NUMBER(10)
INTEGER
INTEGER
INT
Int64
BIGINT
NUMBER(20)
NUMERIC(20)
BIGINT
BIGINT
日付
日付
日付
TIMESTAMP
日付
DATETIME
時間
時間
FLOAT
時間
時間
FLOAT
日時
TIMESTAMPZ
日付
TIMESTAMP
TIMESTAMP
MS SQL < 2008:DATETIME
MS SQL >= 2012:DATETIMEOFFSET
Datetimenotz
TIMESTAMPZ
日付
TIMESTAMP
TIMESTAMP
MS SQL < 2008:DATETIME
MS SQL >= 2012:DATETIME2
タイムスパン
重複精度
FLOAT
FLOAT
重複
FLOAT
メモ
TEXT
CLOB (Unicodeの場合はNCLOB)
CLOB (CLOB CHARACTER SET UNICODE if Unicode)
CLOB(6M)
TEXT (Unicodeの場合はNTEXT)
BLOB
BLOB
BLOB
BLOB
BLOB(4M)
IMAGE

プロパティ

データスキーマの​<elements>​要素と​<attributes>​要素は、様々なプロパティを使用して強化できます。 現在の要素を説明するためにラベルを入力できます。

ラベルと説明

  • label​プロパティを使用すると、簡単な説明を入力できます。

    メモ

    ラベルは、インスタンスの現在の言語に関連付けられます。

    <attribute name="email" type="string" length="80" label="Email"/>
    

    ラベルは、Adobe Campaignクライアントコンソールの入力フォームから確認できます。

  • desc​プロパティを使用すると、詳細な説明を入力できます。

    説明は、Adobe Campaignクライアントコンソールのメインウィンドウのステータスバーにある入力フォームから確認できます。

    メモ

    説明は、インスタンスの現在の言語に関連付けられます。

    <attribute name="email" type="string" length="80" label="Email" desc="Email of recipient"/>
    

デフォルト値

デフォルト​プロパティを使用すると、コンテンツ作成時にデフォルト値を返す式を定義できます。

値は、XPath言語に準拠した式である必要があります。 詳しくは、XPathでの参照を参照してください。

  • 現在の日付:default="GetDate()"

  • カウンタ:default="'FRM'+CounterValue('myCounter')"

    この例では、デフォルト値は文字列を連結して構築され、CounterValue​関数を空きカウンタ名で呼び出しています。 返される数字は、挿入のたびに1ずつ増分されます。

    メモ

    Adobe Campaignクライアントコンソールでは、Administration>Counters​ノードを使用してカウンターを管理します。

フィールドにデフォルト値をリンクするには、<default> or <sqldefault> field. </sqldefault> </default>

<default> :エンティティを作成する際に、フィールドにデフォルト値を事前入力できます。値はデフォルトのSQL値ではありません。

<sqldefault> :フィールドの作成時に値を追加できます。この値はSQL結果として表示されます。 スキーマの更新中、新しいレコードのみがこの値の影響を受けます。

列挙

無料定義済みリスト

userEnum​プロパティを使用すると、このフィールドに入力した値を記憶し、表示するための空き定義済みリストを定義できます。 構文は以下のようになります。

userEnum="定義済みリスト名"

定義済みリストに与えられた名前は自由に選択し、他のフィールドと共有できます。

次の値は、入力フォームのドロップダウンリストに表示されます。

メモ

Adobe Campaignクライアントコンソールでは、定義済みリストの管理に​管理/定義済みリスト​ノードが使用されます。

定義済みリストを設定

enum​プロパティを使用すると、可能な値のリストが事前にわかっている場合に使用する固定定義済みリストを定義できます。

enum​属性は、メイン要素の外側のスキーマに入力される定義済みリストクラスの定義を参照します。

定義済みリストを使用すると、ユーザーは、通常の入力フィールドに値を入力する代わりに、ドロップダウンリストから値を選択できます。

データスキーマの定義済みリスト宣言の例:

<enumeration name="gender" basetype="byte" default="0">    
  <value name="unknown" label="Not specified" value="0"/>    
  <value name="male" label="male" value="1"/>   
  <value name="female" label="female" value="2"/>   
</enumeration>

定義済みリストは、メイン要素の外側で​<enumeration>​要素を介して宣言されます。

定義済みリストのプロパティは次のとおりです。

  • baseType:値に関連付けられているデータのタイプ、
  • label:定義済みリストの説明
  • name:定義済みリストの名前
  • default:定義済みリストのデフォルト値。

定義済みリスト値は、次の属性を持つ​<value>​要素で宣言されます。

  • name:内部的に保存された値の名前、
  • label:グラフィカルインターフェースを介して表示されるラベル。

dbenum定義済みリスト

  • dbenum​プロパティを使用すると、enum​プロパティと類似したプロパティを持つ定義済みリストを定義できます。

    ただし、name​属性は値を内部的に格納するのではなく、関連するテーブルのスキーマを変更せずに拡張できるコードを格納します。

    値は、管理>定義済みリスト​ノードを介して定義されます。

    この定義済みリストは、キャンペーンの特性を指定する場合などに使用します。

プロパティが設定されたスキーマの例を次に示します。

<srcSchema name="recipient" namespace="cus">
  <enumeration name="gender" basetype="byte">    
    <value name="unknown" label="Not specified" value="0"/>    
    <value name="male" label="male" value="1"/>   
    <value name="female" label="female" value="2"/>   
  </enumeration>

  <element name="recipient">
    <attribute name="email" type="string" length="80" label="Email" desc="Email of recipient"/>
    <attribute name="created" type="datetime" label="Date of creation" default="GetDate()"/>
    <attribute name="gender" type="byte" label="gender" enum="gender"/>
    <element name="location" label="Location">
      <attribute name="city" type="string" length="50" label="City" userEnum="city"/>
   </element>
  </element>
</srcSchema>

コレクション

コレクションは、同じ名前と同じ階層レベルを持つ要素のリストです。

unbound​属性の値が「true」の場合は、コレクション要素にデータを埋め込むことができます。

:スキーマ内の <group> コレクション要素の定義。

<element name="group" unbound="true" label="List of groups">
  <attribute name="label" type="string" label="Label"/>
</element>

XMLコンテンツの投影を使用する場合:

<group label="Group1"/>
<group label="Group2"/>

XPathによる参照

Adobe Campaign では、XPath 言語を使用して、データスキーマに属する要素または属性を参照します。

XPath は、XML ドキュメントのツリー内にノードを配置するための構文です。

要素は名前で指定し、属性は名前の前に「@」文字を付けて指定します。

  • @email:電子メールを選択し、
  • location/@city:要 <location> 素の下の「市区町村」属性を選択
  • …/@email:現在の要素の親要素から電子メールアドレスを選択します
  • group[1]/@label:最初の <group> コレクション要素の子である「label」属性を選択します
  • group[@label='test1']: <group> 要素の子で、値「test1」を含む「label」属性を選択します
メモ

パスがサブ要素を越えると、追加の制約が追加されます。 この場合、次の式を角括弧で囲む必要があります。

  • location/@ cityis not valid;使用する [location/@city]
  • [@email]@ emailare equivalent

次の算術演算など、複雑な式を定義することもできます。

  • @gender+1:genderattributeの内容に1を追加し ​ます。
  • @email + '('+@created+'':作成日の丸括弧内に追加された電子メールアドレスの値を受け取って文字列を作成します(文字列型の場合は、定数を引用符で囲みます)。

この言語の潜在能力を高めるため、式に高レベルの関数が追加されました。

使用可能な機能のリストは、Adobe Campaignクライアントコンソールの任意の式エディターからアクセスできます。

  • GetDate():現在の日付を返します。
  • Year(@created):「created」属性に含まれる日付の年を返します。
  • GetEmailDomain(@email):電子メールアドレスのドメインを返します。

計算文字列を使用した文字列の作成

計算文字列​は、スキーマに関連付けられたテーブルのレコードを表す文字列の構築に使用されるXPath式です。 計算 文字列は主にグラフィカルインターフェイスで使用され、選択したレコードのラベルを表示します。

計算文字列​は、データスキーマのメイン要素の下の​<compute-string>​要素を介して定義されます。 expr​属性には、表示を計算するXPath式が含まれます。

:受信者テーブルの文字列を計算します。

<srcSchema name="recipient" namespace="nms">  
  <element name="recipient">
    <compute-string expr="@lastName + ' ' + @firstName +' (' + @email + ')' "/>
    ...
  </element>
</srcSchema>

受信者の計算済み文字列の結果:Doe John (john.doe@aol.com)

メモ

スキーマにCompute文字列が含まれていない場合、デフォルトでは、スキーマの主キーの値がCompute文字列に入力されます。

このページ