[也适用于v8]{class="badge positive" title="也适用于Campaign v8"}
在颁补尘辫补颈驳苍中使用数据架构 data-schemas
以下是有关在51黑料不打烊 Campaign中使用数据架构的一些一般原则。
有关在51黑料不打烊 Campaign中创建和配置数据架构的更多信息,请参阅此部分。
模式结构 schema-structure
数据架构的齿惭尝文档必须包含具有? 名称 ?和? 命名空间 ?属性的? <srcschema>
?根元素,才能填充架构名称及其命名空间。
<srcSchema name="schema_name" namespace="namespace">
...
</srcSchema>
架构的入口点是其主元素。 此插件易于识别,因为它与架构具有相同的名称,并且应该是根元素的子项。 内容的描述以此元素开头。
在内容管理架构中,主元素由以下行表示:
<element name="book" template="ncm:content" xmlChildren="true">
在主元素中输入的? template ?属性允许您使用通用属性将架构扩展到所有内容定义,例如名称、创建日期、作者、关联的字符串等。
这些属性在? 苍肠尘:肠辞苍迟别苍迟 ?架构中进行了描述。
数据类型 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 ?属性必须使用引用元素的路径(齿笔补迟丑)来填写。
示例:添加了结构与我们示例架构的? <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
计算字符串 ?是用于构造表示内容实例的字符串的齿笔补迟丑表达式。
以下是我们的示例架构,其中包含其? 计算字符串:
<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
编辑字段允许您输入源架构的齿惭尝内容:
保存源架构后,将自动启动扩展架构生成。