数据模式

以下是关于在Adobe Campaign中使用数据模式的一些一般原则。

有关在Adobe Campaign中创建和配置模式的详细信息,请参阅本节

模式结构

数据模式的XML文档必须包含​<srcschema>​根元素,其中​name​和​命名空间​属性用于填充模式名称及其命名空间。

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

模式的入口点是其主要元素。 由于它的名称与模式相同,并且它应该是根元素的子元素,因此易于识别。 内容的描述以此元素开头。

在内容管理模式中,主元素由以下行表示:

<element name="book" template="ncm:content" xmlChildren="true">

在主元素中输入的​template​属性允许您将具有通用属性的模式扩展到所有内容定义,如名称、创建日期、作者、关联字符串等。

这些属性在​ncm:content​模式中有介绍。

注意

存在​xmlChildren​属性表示通过主元素输入的数据结构存储在内容实例的XML文档中。

注意

在创建新模式或在模式扩展期间,您需要为整个模式保留相同的主键序列值(@pkSequence)。

数据类型

以下是已填写类型的内容管理模式示例:

<srcSchema name="book" namespace="cus">
  <element name="book" template="ncm:content" xmlChildren="true">
    <attribute name="title" type="string"/>
    <attribute name="date" type="date"/>
    <attribute name="language" type="string"/>
    <element name="chapter">
      <attribute name="name" type="string"/>
      <element name="page" type="string>
        <attribute name="number" type="short"/>
      </element>
    </element>
  </element>
</element>

属性

各种属性可用于丰富数据模式的​<element>​和​<attribute>​元素。

在内容管理中使用的主要属性如下:

  • label:简短描述,
  • desc:长描述,
  • 默认:表达式在内容创建时返回默认值,
  • userEnum:免费明细列表存储和显示通过此字段输入的值,
  • 枚举:修复了在预先知道可能值的列表时使用的明细列表。

下面是我们的示例模式,其中填写了属性:

<srcSchema name="book" namespace="cus">
  <enumeration name="language" basetype="string" default="eng">    
    <value name="fra" label="French"/>    
    <value name="eng" label="English"/>   
  </enumeration>

  <element name="book" label="Book" desc="Example book" template="ncm:content" xmlChildren="true">
    <attribute name="title" type="string" label="Title" default="'New book'"/>
    <attribute name="date" type="date" default="GetDate()"/>
    <attribute name="language" type="string" label="Language" enum="language"/>
    <element name="chapter" label="Chapter">
      <attribute name="name" type="string" label="Name" desc="Name of chapter"/>
      <element name="page" type="string" label="Page" desc="Page content">
        <attribute name="number" type="short" label="Number" default="CounterValue('numPage')"/>
      </element>
    </element>
  </element>
</srcSchema>

集合元素

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

在我们的示例中,<chapter>​和​<page>​元素是集合元素。 因此,必须将​unboind​属性添加到以下元素的定义中:

<element name="chapter" label="Chapter" unbound="true" ordered="true">
<element name="page" type="string" label="Page" desc="Content of page" unbound="true">
注意

存在​ordered="true"​属性允许您对插入的集合元素进行排序。

引用的元素

元素引用在内容模式中使用得很多。 它允许您对​<element>​元素的定义进行分解,以便在具有相同结构的其他元素上引用它。

要引用的元素上的​ref​属性必须使用引用元素的路径(XPath)完成。

示例:添加与示 ​例模式的元素具有 <chapter> 相同结构的Appendixsection。

<srcSchema name="book" namespace="cus">
  <element name="section">
    <attribute name="name" type="string" label="Name" desc="Name"/>
    <element name="page" type="string" label="Page" desc="Content of page">
      <attribute name="number" type="short" label="Number" default="CounterValue('numPage')"/>
    </element>

  <element name="book" label="Book" desc="Example book" template="ncm:content" xmlChildren="true">
    <attribute name="title" type="string" label="Title" default="'New book'"/>
    <attribute name="date" type="date" default="GetDate()"/>
    <attribute name="language" type="string" label="Language" enum="language"/>
    <element name="chapter" label="Chapter" ref="section"/>
    <element name="appendix" label="Appendix" ref="section"/>
  </element>
</srcSchema>

章结构将移至主元素外部名为“section”的元素。 本章和章节引用了“章节”元素。

计算字符串

计算字符串​是用于构造表示内容实例的字符串的XPath表达式。

以下是我们的示例模式,其​Compute string:

<srcSchema name="book" namespace="cus">
  <element name="book" label="Book" desc="Example book" template="ncm:content" xmlChildren="true">
    <compute-string expr="@name"/>
    ...
  </element>
</srcSchema>

编辑模式

通过编辑字段,可以输入源模式的XML内容:

保存源模式时,将自动启动扩展模式生成。

注意

通过​名称​编辑控件,可以输入模式的键,包括名称和命名空间。 模式根元素的​name​和​命名空间​属性在模式的XML编辑字段中自动更新。

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free