模式结构

的基本结构 <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文档必须包含 <srcschema> 根元素,其中 name命名空间 属性来填充架构名称及其命名空间。

<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命名规则的授权字符。

  • <element> 元素可以包含 <attribute> 元素和 <element> 元素。

  • <attribute> 元素在 <element>.

  • 的使用 <elements> 建议在多行数据字符串中使用。

数据类型

数据类型通过 type 属性 <attribute><element> 元素。

<attribute> 元素<element> 元素)。

未填充此属性时, 字符串 为默认数据类型,除非元素包含子元素。 如果是,则仅用于按层次结构元素(<location> 元素)。

架构支持以下数据类型:

  • 字符串:字符串。 示例:名字、城镇等。

    可以通过 length 属性(可选,默认值“255”)。

  • 布尔:布尔字段。 可能值的示例:true/false、0/1、yes/no等。

  • 字节, , long:整数(1字节、2字节、4字节)。 示例:年龄、帐号、积分等。

  • 多次:双精度浮点数。 示例:价格、费率等

  • 日期, date:日期和日期+时间。 示例:出生日期、购买日期等。

  • datetimenotz:日期+时间(不含时区数据)。

  • 时间跨平台:持续时间。 示例:资历。

  • 备忘录:长文本字段(多行)。 示例:描述、评论等。

  • uid:用于支持GUID的“uniqueidentifier”字段(仅在Microsoft SQL Server中受支持)。

    注意

    包含 uid 除Microsoft SQL Server之外的引擎中的字段,必须添加并填写“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为不同数据库管理系统生成的数据类型的映射。

PosgreSQL
Oracle
MS SQL
Adobe Campaign
字符串
VARCHAR(255)
VARCHAR2(如果为unicode,则为NVARCHAR2)
VARCHAR(如果为Unicode,则为VARCHAR字符集UNICODE)
VARCHAR
VARCHAR(如果为unicode,则为NVARCHAR)
布尔值
斯马林特
数字(3)
数值(3)
斯马林特
TINYINT
字节
斯马林特
数字(3)
数值(3)
斯马林特
TINYINT

斯马林特
数字(5)
斯马林特
斯马林特
斯马林特
双线
双精度
浮动
浮动
双精度
浮动

整数
数字(10)
整数
整数
INT
Int64
BIGINT
数字(20)
数值(20)
BIGINT
BIGINT
日期
日期
日期
时间戳
日期
DATETIME
每位用户
时间
浮动
时间
时间
浮动
日期时间
时间戳
日期
时间戳
时间戳
MS SQL < 2008:DATETIME
MS SQL >= 2012:DATETIMEOFFSET
Datetimenotz
时间戳
日期
时间戳
时间戳
MS SQL < 2008:DATETIME
MS SQL >= 2012:DATETIME2
时间跨度
双精度
浮动
浮动
双精度
浮动
备忘录
文本
CLOB(如果为Unicode,则为NCLOB)
CLOB(如果为Unicode,则为CLOB字符集UNICODE)
CLOB(6M)
文本(如果为Unicode,则为NTEXT)
Blob
BLOB
BLOB
BLOB
BLOB(4M)
图像

属性

<elements><attributes> 可以使用各种属性来扩充数据架构的元素。 您可以填充标签以描述当前元素。

标签和描述

  • 标签 属性允许您输入简短描述。

    注意

    标签与实例的当前语言关联。

    示例:

    <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')"

    在此示例中,默认值是使用字符串的串联并调用 计数器值 函数,其中包含自由计数器名称。 每次插入时返回的数字都增加1。

    注意

    在Adobe Campaign客户端控制台中, Administration>Counters 节点用于管理计数器。

要将默认值链接到字段,您可以使用 <default> or <sqldefault> field. </sqldefault> </default>

<default> :用于在创建实体时使用默认值预填字段。 该值不是默认的SQL值。

<sqldefault> :允许您在创建字段时添加值。 此值显示为SQL结果。 在模式更新期间,只有新记录会受此值的影响。

明细列表

自由枚举

userEnum 属性允许您定义自由枚举,以记住和显示通过此字段输入的值。 语法如下所示:

userEnum="枚举的名称"

可以自由选择给枚举的名称并与其他字段共享。

这些值显示在输入表单的下拉列表中:

注意

在Adobe Campaign客户端控制台中, Administration > Enumerations 节点用于管理枚举。

设置枚举

枚举 属性允许您定义在事先已知可能值列表时使用的固定枚举。

枚举 属性是指在主元素外的架构中填充的枚举类的定义。

枚举允许用户从下拉列表中选择一个值,而不是在常规输入字段中输入该值:

数据架构中枚举声明的示例:

<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:与值关联的数据类型,
  • 标签:列举的说明,
  • name:枚举的名称,
  • 默认:枚举的默认值。

枚举值在 <value> 元素(具有以下属性):

  • name:内部存储的值的名称,
  • 标签:标签。

dbenum枚举

  • 贝努姆 属性允许您定义其属性与 枚举 属性。

    但是, 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:从当前元素的父元素中选择电子邮件地址
  • 群组[1]/@label:选择作为第一个 <group> 收集元素
  • 群组[@label='test1']:选择作为 <group> 元素和包含值“test1”
注意

当路径穿过子元素时,将添加附加约束。 在这种情况下,以下表达式必须置于括号之间:

  • location/@city 无效;请使用 [location/@city]
  • [@email]@email 等于

也可以定义复杂的表达式,例如以下算术运算:

  • @gender+1:在 性别 属性,
  • @email + '('+@created+')':通过获取添加到创建日期(在圆括号之间)的电子邮件地址值来构建字符串(对于字符串类型,将常量加引号)。

在表达式中添加了高级函数,以丰富此语言的潜力。

您可以通过Adobe Campaign客户端控制台中的任何表达式编辑器访问可用函数列表:

示例:

  • GetDate():返回当前日期
  • Year(@created):返回“已创建”属性中包含的日期年份。
  • GetEmailDomain(@email):返回电子邮件地址的域。

通过计算字符串生成字符串

A 计算字符串 是XPath表达式,用于构建一个字符串,该字符串表示与该模式关联的表中的记录。 计算字符串 主要用于图形界面以显示所选记录的标签。

计算字符串 通过 <compute-string> 元素。 安 expr 属性包含用于计算显示的XPath表达式。

示例:收件人表的计算字符串。

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

收件人的计算字符串的结果: 多·约翰(john.doe@aol.com)

注意

如果架构不包含计算字符串,则默认情况下会使用架构主键的值填充计算字符串。

在此页面上