Show Menu
トピック×

スキーマの構造

の基本構造は次の <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>

The XML document of a data schema must contain the <srcschema> root element with the name and namespace attributes to populate the schema name and its namespace.
<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> 内の要素と要素を <attribute> 含めるこ <element> とができるのは要素のみです。
  • 要素 <attribute> は、内部に一意の名前を持つ必要がありま <element> ​す。
  • 複数行のデータ文字列に​ <elements> ​を使用することをお勧めします。

データタイプ

データ型は、要素と要素の type属性 で入 <attribute> 力し <element> ます。
詳細なリストは、要素と要素の説明に記載さ <attribute> いま <element>
この属性に値が入力されない場合、要素に 子要素が含まれていない限り 、stringがデフォルトのデータ型になります。 その場合は、要素を階層的に構成する(この例の要素​ <location> )ためにのみ使用されます。
スキーマでは、次のデータ型がサポートされています。
  • string :文字列。 例:名、町名等
    サイズは、 length 属性(オプション、デフォルト値は「255」)で指定できます。
  • boolean :Booleanフィールド。 使用可能な値の例:true/false、0/1、yes/noなど
  • byte short long :整数(1バイト、2バイト、4バイト)。 例:年齢、口座番号、ポイント数等
  • double :倍精度浮動小数点数。 例:価格、料金等
  • 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 (unicodeの場合はNVARCHAR2) VARCHAR(VARCHAR CHARACTER SET UNICODE(Unicodeの場合) VARCHAR VARCHAR (unicodeの場合はNVARCHAR)
ブール値 SMALLINT NUMBER(3) NUMERIC(3) SMALLINT TINYINT
Byte SMALLINT NUMBER(3) NUMERIC(3) SMALLINT TINYINT
短い SMALLINT NUMBER(5) SMALLINT SMALLINT SMALLINT
重複 倍精度 FLOAT FLOAT DOUBLE FLOAT
長い INTEGER NUMBER(10) INTEGER INTEGER INT
Int64 BIGINT NUMBER(20) NUMERIC(20) BIGINT BIGINT
日付 DATE DATE TIMESTAMP DATE DATETIME
時間 TIME FLOAT TIME TIME FLOAT
日時 TIMESTAMPZ DATE TIMESTAMP TIMESTAMP MS SQL < 2008:DATETIME MS SQL >= 2012:DATETIMEOFFSET
Datetimenotz TIMESTAMPZ DATE TIMESTAMP TIMESTAMP MS SQL < 2008:DATETIME MS SQL >= 2012:DATETIME2
Timespan 倍精度 FLOAT FLOAT DOUBLE FLOAT
メモ TEXT CLOB(Unicodeの場合はNCLOB) CLOB(UNICODEの場合はCLOB文字セット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"/>
    
    

デフォルト値

defaultプロ パティを使用すると 、コンテンツ作成時にデフォルト値を返す式を定義できます。
値は、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クライアントコンソールでは、ノードを Administration > Enumerations 使用して列挙を管理します。

列挙の設定

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プ ロパティを使用すると 、enumプロパティと類似したプロパティを持つ列挙を定義 できます
    ただし、 name属性には値が内部的に格納されるわけではありませんが 、スキーマを変更せずに関連するテーブルを拡張できるコードが格納されています。
    値はノードを介して定義され Administration>Enumerations ます。
    この列挙は、例えばキャンペーンの特性を指定するために使用されます。

例 :

プロパティが設定されたスキーマの例を次に示します。
<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>

コレクション

コレクションは、同じ名前と同じ階層レベルを持つ要素のリストです。
値が 「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 :最初のコレクション要素の子である「label」属性を選択​ <group> ​します
  • group [@label='test1'] :要素の子で、値「test1」を含む「label」 <group> ​属性を選択します。
パスがサブ要素と交差すると、追加の制約が追加されます。 この場合、次の式を角括弧で囲む必要があります。
  • location/@city is not valid;お使いください [location/@city]
  • [@email] @emailは同等です
また、次の算術演算など、複雑な式を定義することもできます。
  • @gender+1 :性別属性の内容に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 )
スキーマに計算文字列が含まれていない場合、デフォルトでは、スキーマの主キーの値が計算文字列に入力されます。