[也适用于v8]{class="badge positive" title="也适用于Campaign v8"}
在Campaign中使用数据架构 data-schemas
以下是有关在Adobe Campaign中使用数据架构的一些一般原则。
有关在Adobe Campaign中创建和配置数据架构的更多信息,请参阅此部分。
模式结构 schema-structure
数据架构的XML文档必须包含具有 名称 和 命名空间 属性的 <srcschema>
根元素,才能填充架构名称及其命名空间。
<srcSchema name="schema_name" namespace="namespace">
...
</srcSchema>
架构的入口点是其主元素。 此插件易于识别,因为它与架构具有相同的名称,并且应该是根元素的子项。 内容的描述以此元素开头。
在内容管理架构中,主元素由以下行表示:
<element name="book" template="ncm:content" xmlChildren="true">
在主元素中输入的 template 属性允许您使用通用属性将架构扩展到所有内容定义,例如名称、创建日期、作者、关联的字符串等。
这些属性在 ncm:content 架构中进行了描述。
数据类型 data-types
以下是填充了类型的内容管理架构示例:
<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>
属性 properties
各种属性可用于扩充数据架构的 <element>
和 <attribute>
元素。
内容管理使用的主要属性如下:
- 标签:简短说明,
- 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>
收藏集元素 collection-elements
集合是具有相同名称和相同层次级别的元素的列表。
在我们的示例中,<chapter>
和 <page>
元素是集合元素。 因此,必须将 未绑定 特性添加到这些元素的定义中:
<element name="chapter" label="Chapter" unbound="true" ordered="true">
<element name="page" type="string" label="Page" desc="Content of page" unbound="true">
元素引用 element-referencing
元素引用在内容架构中被大量使用。 它可让您分解 <element>
元素的定义,以便在具有相同结构的其他元素上引用它。
要引用的元素上的 ref 属性必须使用引用元素的路径(XPath)来填写。
示例:添加了结构与我们示例架构的 <chapter>
元素相同的 Appendix 节。
<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”的元素。 章节和小节引用“section”元素。
计算字符串 compute-string
计算字符串 是用于构造表示内容实例的字符串的XPath表达式。
以下是我们的示例架构,其中包含其 计算字符串:
<srcSchema name="book" namespace="cus">
<element name="book" label="Book" desc="Example book" template="ncm:content" xmlChildren="true">
<compute-string expr="@name"/>
...
</element>
</srcSchema>
编辑模式 editing-schemas
编辑字段允许您输入源架构的XML内容:
保存源架构后,将自动启动扩展架构生成。