了解架构结构 schema-structure

架构的基本结构如下所述。

数据架构 data-schema

对于<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> ​根元素,才能填充架构名称及其命名空间。

<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>

说明 description

架构的入口点是其主元素。 此插件易于识别,因为它与架构具有相同的名称,并且应该是根元素的子项。 内容的描述以此元素开头。

在本例中,主元素由以下行表示:

<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 ​属性用名称标识。

    note important
    IMPORTANT
    元素的名称应简洁,最好是英文,并且仅包括XML命名规则中允许的字符。
  • 只有​ <element> ​个元素可以在XML结构中包含​ <attribute> ​个元素和​ <element> ​个元素。

  • <attribute> ​元素在​ <element> ​中必须具有唯一的名称。

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

数据类型 data-types

数据类型是通过​ <attribute> ​和​ <element> ​元素中的​ type ​属性输入的。

<attribute>元素<element>元素的描述中提供了详细列表。

如果未填充此属性,则​ string ​是默认的数据类型,除非该元素包含子元素。 如果是,则仅将其用于分层构造元素(示例中为​ <location> ​个元素)。

架构支持以下数据类型:

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

    可以通过​ length ​属性指定大小(可选,默认值“255”)。

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

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

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

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

  • datetimenotz:没有时区数据的日期+时间。

  • 时间跨度:持续时间。 例如:资历。

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

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

    note note
    NOTE
    若要在Microsoft SQL Server以外的RDBMS中包含​ uuid ​字段,必须添加the 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数据的类型 mapping-the-types-of-adobe-campaign-dbms-data

下表列出了Adobe Campaign为各种数据库管理系统生成的数据类型的映射。

Adobe Campaign
PosgreSQL
Oracle
字符串
VARCHAR(255)
VARCHAR2 (NVARCHAR2,如果是unicode)
布尔值
SMALLINT
数字(3)
字节
SMALLINT
数字(3)
SMALLINT
数字(5)
双精度
双精度
浮点数
整数
数字(10)
Int64
BIGINT
数字(20)
日期
日期
日期
时间
时间
浮点数
日期时间
时间戳
日期
Datetimenotz
时间戳
日期
时间跨度
双精度
浮点数
备忘录
文本
CLOB (Unicode时为NCLOB)
Blob
BLOB
BLOB

属性 properties

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

标签和描述 labels-and-descriptions

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

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

    示例

    code language-sql
    <attribute name="email" type="string" length="80" label="Email"/>
    

    标签显示在Adobe Campaign客户端控制台输入表单中:

  • desc ​属性允许您输入较长的描述。

    该描述将显示在Adobe Campaign客户端控制台主窗口状态栏的输入表单中。

    note note
    NOTE
    该描述与实例的当前语言相关联。

    示例

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

默认值 default-values

使用​ default ​属性定义在创建内容时返回默认值的表达式。

该值必须是符合XPath语言的表达式。 有关详细信息,请参阅使用XPath引用

示例

  • 当前日期: default="GetDate()"

  • 计数器: default="'FRM'+CounterValue('myCounter')"

    在此示例中,默认值是使用字符串的串连来构造的,并使用免费计数器名称调用​ CounterValue ​函数。 每次插入时,返回的数字将递增1。

    note note
    NOTE
    在Adobe Campaign客户端控制台中,浏览到资源管理器的​ Administration > Counters ​文件夹以管理计数器。

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

<default> :允许您在创建实体时使用默认值预填充字段。 该值将不会是默认的SQL值。

<sqldefault> :允许您在创建字段时添加值。 此值显示为SQL结果。 在架构更新期间,此值仅影响新记录。

明细列表 enumerations

打开明细列表 free-enumeration

userEnum ​属性允许您定义一个打开的枚举,以存储和显示通过此字段输入的值。

语法如下:

userEnum="name of enumeration"

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

NOTE
在Adobe Campaign客户端控制台中,浏览到Explorer的​ Administration > Enumerations ​文件夹以管理枚举。

设置明细列表 set-enumeration

枚举 ​属性允许您定义预先知道可能值的列表时使用的固定枚举。

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

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

  • name:内部存储的值的名称
  • 标签:图形界面中显示的标签

dbenum枚举 dbenum-enumeration

*dbenum ​属性允许您定义属性与​ enum ​属性的属性相似的枚举。

但是,name ​属性不会在内部存储该值,它存储了一个代码,该代码允许您在不修改相关表架构的情况下扩展这些表。

例如,此枚举用于指定营销活动的性质。

示例 example

以下是填充了属性的架构示例:

<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>

集合 collections

集合是具有相同名称和相同层次级别的元素的列表。

值为“true”的​ unbound ​属性允许您填充集合元素。

示例:架构中​ <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引用 referencing-with-xpath

XPath语言在Adobe Campaign中用于引用属于数据架构的元素或属性。

XPath是一种语法,允许您在XML文档的树中查找节点。

元素由名称指定,属性由名称指定,名称前面加有字符“@”。

示例

  • @email:选择电子邮件,
  • location/@city:选择​ <location> ​元素下的“city”属性
  • …/@email:从当前元素的父元素中选择电子邮件地址
  • [1]/@label:选择作为第一个​ <group> ​集合元素的子项的“label”属性
  • [@label='test1']:选择作为​ <group> ​元素的子项且包含值“test1”的“label”属性
NOTE
当路径穿过子元素时,会添加附加约束。 在这种情况下,必须在括号之间放置以下表达式:
  • 位置/@city ​无效;请使用​**[location/@city]**
  • [@email] ​和​**@email**​是等效的

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

  • @gender+1:将1添加到​ 性别 ​属性的内容中,
  • @email + '('+@created+')':构造字符串的方法是采用添加到创建日期的电子邮件地址的值在括号之间(对于字符串类型,将常量放在引号中)。

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

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

示例

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

通过计算字符串构建字符串 building-a-string-via-the-compute-string

计算字符串 ​是用于构造表示与架构关联的表中记录的字符串的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)

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

了解详情

浏览以下链接以了解更多信息:

recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1