Extension dʼun schéma extending-a-schema

IMPORTANT
Certains schémas intégrés ne doivent pas être étendus. Il s’agit principalement de ceux pour lesquels les paramètres suivants sont définis :
dataSource="file" et mappingType="xmlFile".
Les schémas suivants ne doivent pas être étendus : xtk:entityBackupNew, xtk:entityBackupOriginal, xtk:entityOriginal, xtk:form, xtk:srcSchema, ncm:publishing, nl:monitoring, nms:calendar, nms:remoteTracking, nms:userAgentRules, xtk:builder, xtk:connections, xtk:dbInit, xtk:funcList, xtk:fusion, xtk: jst, xtk:navtree, xtk:queryDef, xtk:resourceMenu, xtk:schema, xtk:scriptContext, xtk:session, xtk:sqlSchema, xtk:strings.
Cette liste n'est pas exhaustive.

Il existe deux solutions pour étendre un schéma déjà existant :

  1. Modifier directement le schéma source.

  2. Créer un autre schéma de même nom, mais avec un espace de noms différent. L'avantage est de pouvoir étendre une table sans avoir à modifier le schéma d'origine.

    L'élément racine du schéma doit contenir l'attribut extendedSchema avec comme valeur le nom du schéma à étendre.

    Un schéma d'extension ne possède pas son propre schéma : c'est le schéma généré à partir du schéma source qui sera complété avec les champs du schéma d'extension.

    note important
    IMPORTANT
    Vous n’êtes pas autorisé à modifier les schémas intégrés à l’application ; vous devez utiliser le mécanisme d’extension des schémas. En effet, lors des futures mises à jour de l’application, les schémas modifiés ne seraient pas mis à jour, ce qui peut entraîner des dysfonctionnements dans l’utilisation d’Adobe Campaign.

    Exemple  : extension du schéma nms:recipient.

    code language-none
    <srcSchema extendedSchema="nms:recipient" name="recipient" namespace="cus">
      <element name="recipient">
        <attribute name="code" label="Branch code" type="long"/>
      </element>
    </srcSchema>
    

    Le schéma étendu nms:recipient est complété avec le champ renseigné dans le schéma d'extension :

    code language-none
    <schema dependingSchemas="cus:recipient" name="recipient" namespace="nms">
      ...
      <attribute belongsTo="cus:recipient" label="Branch code" name="code" sqlname="iCode" type="long"/>
      ...
    </schema>
    

    L’attribut dependingSchemas sur l’élément racine du schéma référence les dépendances sur les schémas d’extension.

    L'attribut belongsTo sur le champ renseigne le schéma où il est déclaré.

IMPORTANT
Pour que les modifications soient prises en compte, vous devez régénérer les schémas. Pour plus dʼinformations, consultez cette page.
Si les modifications affectent la structure de la base de données, vous devez exécuter une mise à jour. Pour plus dʼinformations, consultez cette page.
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1