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.
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.
La présence de l'attribut xmlChildren indique que la structure des données renseignée à partir de l'élément principal est stockée dans un document XML de l'instance de contenu.
Lors de la création ou de l’extension d’un schéma, vous devez conserver la valeur de la séquence de la clé primaire (@pkSequence) pour l’ensemble du schéma.
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>
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 :
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>
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">
La présence de l'attribut ordered="true" permet l'ordonnancement des éléments de collection insérés.
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".
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>
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.
Le contrôle d'édition Nom permet de saisir la clé du schéma composée du nom et de l'espace de noms. Les attributs name et namespace de l'élément racine du schéma sont automatiquement mis à jour dans la zone d'édition XML du schéma.