[S’applique également à la v8.]{class="badge positive" title="S’applique également à Campaign v8."}
Utiliser les schémas de données dans Campaign data-schemas
Vous trouverez ci-après quelques principes généraux sur l'utilisation des schémas de données dans Adobe Campaign.
La création et le paramétrage des schémas de données dans Adobe Campaign sont présentés dans cette section.
Structure d'un schéma schema-structure
Le document XML d'un schéma de données doit contenir l'élément racine <srcschema>
avec les attributs name et namespace pour renseigner respectivement le nom du schéma et son espace de noms.
<srcSchema name="schema_name" namespace="namespace">
...
</srcSchema>
Le point d'entrée du schéma est son élément principal. Il est facilement identifiable car son nom est identique à celui du schéma et il doit être enfant de l'élément racine. C'est à partir de cet élément que commence la description du contenu.
Dans un schéma de gestion de contenu, l'élément principal est représenté par la ligne :
<element name="book" template="ncm:content" xmlChildren="true">
L'attribut template renseigné sur l'élément principal permet d'étendre le schéma avec les propriétés génériques à toutes les définitions de contenu tel que le nom, la date de création, l'auteur, la chaîne associée, etc.
Ces propriétés sont décrites dans le schéma ncm:content.
Types de données data-types
Exemple de schéma de gestion de contenu complété avec les 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>
Propriétés properties
Différentes propriétés permettent d'enrichir les éléments <element>
et <attribute>
du schéma de données.
Les principales propriétés utilisées dans la gestion de contenu sont les suivantes :
- label : description courte,
- desc : description longue,
- default : expression retournant une valeur par défaut à la création du contenu,
- userEnum : énumération libre pour mémoriser et afficher les valeurs renseignées à partir de ce champ,
- enum : énumération fixe utilisée lorsque la liste des valeurs possibles est connue à l'avance.
Notre schéma d'exemple complété avec les propriétés :
<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>
Eléments de collection collection-elements
Une collection est une liste d'éléments de même nom et de même niveau hiérarchique.
Dans notre exemple, les éléments <chapter>
et <page>
sont des éléments de collection. L'attribut unbound doit donc être ajouté à la définition de ces éléments :
<element name="chapter" label="Chapter" unbound="true" ordered="true">
<element name="page" type="string" label="Page" desc="Content of page" unbound="true">
Référencement d'éléments element-referencing
Le référencement d’éléments est largement utilisé dans les schémas de contenu. Il vous permet de personnaliser la définition d’un <element>
élément afin qu’il puisse être référencé sur d’autres éléments de la même structure.
L'attribut ref sur l'élément à référencer doit être renseigné avec le chemin (XPath) de l'élément de référence.
Exemple : ajout d’une section Annexe ayant la même structure que l'élément <chapter>
de notre schéma d’exemple.
<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>
La structure du chapitre est déplacée dans l'élément de nom "section" en dehors de l'élément principal. Le chapitre et la section référencent l'élément "section".
Compute string compute-string
Une Compute string est une expression XPath utilisée pour construire une chaîne représentant une instance de contenu.
Notre schéma d'exemple complété avec sa 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>
Edition des schémas editing-schemas
La zone d'édition permet de renseigner le contenu XML du schéma source :
La sauvegarde du schéma source va automatiquement lancer la génération du schéma étendu.