Présentation des actifs du bloc de création Data Dictionary

Le dictionnaire de données est un catalogue des éléments de données et leurs descriptions, utilisé dans un domaine professionnel et utilisant un vocabulaire professionnel. Le dictionnaire de données contient également des métadonnées pour la gestion du modèle de données afin de fournir une description des structures de données et des attributs qui y sont associés. En règle générale, les utilisateurs professionnels n’ont pas besoin de connaître les métadonnées telles que les représentations XSD (schéma XML) ou FML (langage de modélisation de l’application Adobe), les classes Java et les classes ActionScript, utilisées par les développeurs. Cependant, ils ont le plus souvent besoin de l’accès à ces structures de données et à leurs attributs dans le but de créer des solutions. Le bloc de création Data Dictionary fournit une représentation indépendante des métadonnées et de l’intégration en arrière-plan. Les utilisateurs professionnels qui ne connaissent pas le système d’intégration en arrière-plan peuvent utiliser ce bloc de création pour créer et utiliser des modèles au niveau de la solution. Dans LiveCycle, les utilisateurs professionnels peuvent exprimer des conditions ou utiliser des données dans le flux de travaux de la solution à l’aide du dictionnaire de données.

Outils

Le développement d’une solution qui utilise un dictionnaire de données implique généralement l’utilisation des outils suivants :

  1. Data Dictionaries : interface utilisateur qui permet l’exploration, la création, la modification et l’exportation des dictionnaires de données. Elle est accessible par le biais de la page de gestion des actifs dans le volet Admin de votre portail.

  2. L’Editeur du dictionnaire de données : interface utilisateur qui permet la création et la maintenance du dictionnaire de données qui est livré avec ce bloc de création.

    • Permet l’importation d’un schéma XSD spécifique au domaine en vue de créer un dictionnaire de données.

    • Permet l’ajout/la suppression d’éléments d’un dictionnaire de données (DDE) au-dessus/à partir d’un dictionnaire de données.

    • Permet l’association d’attributs au niveau du dictionnaire de données.

    • Permet l’association d’attributs au niveau du DDE.

    • Permet l’exportation d’un dictionnaire de données dans un modèle FML annoté.

    • Permet l’importation d’un modèle FML annoté en vue de créer un dictionnaire de données.

    • Permet la création d’un exemple de fichier de données XML pour un dictionnaire de données. L’exemple de fichier XML peut être utilisé pour permettre les utilisations dépendantes de l’instance du dictionnaire de données rapidement, sans prise en charge en arrière-plan.

  3. Outils de développement Java :

    • environnement de développement intégré pour la création de projets Java/Spring ;

    • outils de génération ANT.

  4. Outils LiveCycle

    • Adobe® LiveCycle® Designer

    • Adobe® Flash® Builder™

Pour obtenir des informations supplémentaires sur les services du bloc de création Data Dictionary, reportez-vous aux ressources suivantes :

Dictionnaires de données

Vous pouvez créer et gérer des dictionnaires de données par le biais du volet Dictionnaires de données. Dans ce volet, vous pouvez créer ou modifier les dictionnaires de données existants en cliquant sur l’icône Nouveau ou Modifier pour lancer l’Editeur du dictionnaire de données.

Afficher le graphique en taille réelle
Volet Dictionnaires de données

Editeur du dictionnaire de données

L’Editeur du dictionnaire de données est utilisé pour la gestion des dictionnaires de données et des éléments associés. Un développeur middleware peut créer, modifier et supprimer les propriétés des métadonnées aussi bien pour le dictionnaire de données que pour ses éléments, à l’aide de l’Editeur du dictionnaire de données.

Afficher le graphique en taille réelle
Editeur du dictionnaire de données

L’Editeur du dictionnaire de données impose des validations pendant la création ou la mise à jour d’un dictionnaire de données. Pour plus d’informations sur les règles de création d’un DDE pour un schéma valide, voir Eléments du dictionnaire de données.

Afficher le graphique en taille réelle
Eléments du dictionnaire de données

L’Editeur du dictionnaire de données permet aux propriétaires de processus d’entreprise de créer des dictionnaires de données en les important à partir d’un schéma XML ou d’un modèle FML valide. Les propriétaires de processus d’entreprise peuvent également exporter leurs dictionnaires de données au format FML ou générer un exemple de données XML à partir de l’Editeur du dictionnaire de données.

Si le développeur middleware tente d’importer un schéma avec plusieurs éléments de niveau supérieur, l’Editeur du dictionnaire de données l’invite à n’importer qu’un seul élément de niveau supérieur. Le développeur sélectionne un des meilleurs éléments à utiliser dans la création de l’arborescence du dictionnaire de données. Le dictionnaire de données représente un ensemble cohérent de données pour un contexte donné, plutôt qu’un ensemble de données disjointes. Un schéma XSD avec une forêt d’éléments représente plusieurs arborescences d’éléments, chaque arborescence représentant un ensemble de données sans rapport. Un dictionnaire de données est créé sur une telle arborescence. Il n’autorise pas l’importation de FML annotés avec plusieurs entités de niveau supérieur. Spécifiez le nom, nom de référence et le type d’élément d’un dictionnaire de données/DDE car ces paramètres sont obligatoires. Un DDE parent (composite) ne peut pas avoir deux enfants ayant le même nom.

Validations de l’Editeur du dictionnaire de données

L’Editeur du dictionnaire de données impose les validations suivantes lors de la création ou de la mise à jour d’un dictionnaire de données.

  • Seul le type Composite est autorisé en tant qu’élément de niveau supérieur dans la définition du dictionnaire de données.

  • Les éléments Composite et Collection ne sont pas autorisés au niveau feuille. Seuls les éléments de type primitif (chaîne, date, nombre, booléen) sont autorisés au niveau feuille. Cette validation permet de s’assurer qu’il n’existe aucun élément Composite et Collection sans DDE enfant.

  • Lors de l’importation de schéma XSD pour créer un dictionnaire de données, l’Editeur du dictionnaire de données invite à n’importer qu’un seul élément de niveau supérieur, s’il en existe plusieurs, afin de créer le dictionnaire de données.

  • Lors de l’importation d’un modèle de données générique FML/LiveCycle en vue de créer un dictionnaire de données, l’Editeur du dictionnaire de données invite à n’importer qu’un seul élément de niveau supérieur, s’il existe plusieurs entités, afin de créer le dictionnaire de données.

  • L’Editeur du dictionnaire de données n’autorise pas l’importation des FML annotés avec plusieurs entités de niveau supérieur.

  • Le nom est le seul paramètre obligatoire pour un dictionnaire de données.

  • Un DDE parent (composite) ne peut pas avoir deux enfants ayant le même nom.

  • L’Editeur du dictionnaire de données s’assure qu’un DDE est marqué comme calculé, uniquement s’il ne s’agit pas d’un paramètre obligatoire. Un élément obligatoire ne peut pas être calculé et un élément calculé ne peut pas être obligatoire. Aussi, les éléments Collection et Composite ne peuvent pas être des éléments calculés.

  • L’Editeur du dictionnaire de données s’assure qu’un DDE est marqué comme obligatoire uniquement lorsqu’il n’est pas calculé. Il s’assure également qu’il n’est pas l’élément Collection indiquant le type de collection (c’est à dire le seul enfant d’un élément Collection).

  • Les clés vides ou dupliquées ne sont pas autorisées dans les propriétés étendues d’un dictionnaire de données ou d’un DDE.

  • N’utilisez pas les caractères deux-points (:) ou de barre verticale (|) au sein de la clé ou la valeur d’une propriété étendue. Il n’existe aucune validation pour l’utilisation de ces caractères interdits.

Validations appliquées au niveau du dictionnaire de données
  • Le nom du dictionnaire de données ne doit pas être vide.

  • Le nom du dictionnaire de données ne doit contenir que des caractères alphanumériques.

  • La liste des éléments enfants dans le dictionnaire de données ne doit pas être nulle ou vide.

  • Le dictionnaire de données ne doit pas contenir plus d’un élément de dictionnaire de données de niveau supérieur.

  • Seul le type Composite est autorisé en tant qu’élément de niveau supérieur dans la définition du dictionnaire de données.

Validations appliquées au niveau de l’élément du dictionnaire de données
  • Aucun nom de DDE ne doit être nul.

  • Tous les DDE doivent comporter un type d’élément « not null/non null ».

  • Aucun nom de référence de DDE ne doit être nul.

  • Tous les noms de référence de DDE doivent être uniques.

  • Tous les noms de référence de DDE ne doivent contenir que des caractères alphanumériques et le signe « _ ».

  • Tous les noms d’affichage de DDE ne doivent contenir que des caractères alphanumériques et le signe « _ ».

  • Les éléments Composite et Collection ne sont pas autorisés au niveau feuille. Seuls les éléments de type primitif (chaîne, date, nombre, booléen) sont autorisés au niveau feuille. Cette validation permet de s’assurer qu’il n’existe aucun élément Composite et Collection sans DDE enfant.

  • Un DDE parent composite ne doit pas avoir deux éléments enfant portant le même nom.

  • Le sous-type ENUM est utilisé uniquement pour les types d’éléments Chaîne et Nombre.

  • Les éléments Collection et Composite ne peuvent pas être calculés.

  • Un DDE ne peut pas être à la fois calculé et obligatoire.

  • Les DDE calculés doivent contenir une expression valide.

  • Les DDE calculés ne doivent doit pas comporter de liaison XML.

  • Un DDE qui indique le type d’un DDE Collection ne peut pas être calculé ni obligatoire.

  • Les DDE de sous-type ENUM ne doivent pas contenir d’ensembles de valeurs nuls ou vides.

  • La liaison XML d’un DDE Collection ne doit pas correspondre à un attribut.

  • La syntaxe de liaison XML doit être valide, par exemple, un seul @ s’affiche, le caractère @ n’est autorisé que lorsqu’il est suivi d’un nom d’attribut et ainsi de suite.

Volet de définition de l’Editeur du dictionnaire de données

Le volet de définition de l’Editeur du dictionnaire de données est l’interface utilisateur pour la création de DDE et s’affiche dans un format d’arborescence. Le volet Structure du dictionnaire de données affiche la liste des DDE. Le volet Liste des champs et des variables affiche la liste des propriétés associées au DDE sélectionné. Un élément de données peut également être saisi en cliquant avec le bouton droit sur un élément.

Afficher le graphique en taille réelle
Volet Eléments de données

Services Data Dictionary

Les services du bloc de création Data Dictionary sont exposés en tant que services OSGi. Voici la liste des services fournis par le bloc de création Data Dictionary :

Nom

Description

DataDictonaryRegistryService

Permet les opérations de création, récupération, mise à jour et suppression (opérations CRUD) pour un dictionnaire de données.

DataDictionaryUtilService

Fournit les fonctions utilitaires du dictionnaire de données pour :

  • importer un schéma XSD afin de créer un dictionnaire de données ;

  • importer/exporter un dictionnaire de données en tant que modèle FML annoté ;

  • importer un modèle FML générique (modèle de données LiveCycle) pour créer un dictionnaire de données ;

  • créer un objet de dictionnaire de données depuis XSD/FML. L’objet de dictionnaire de données peut ensuite être sauvegardé à l’aide des API dans le service DataDictionaryRegistryService ;

  • créer des exemples de données XML ;

  • sérialiser des DDI en données XML ;

  • créer des données DDI à partir d’un objet XML/Java.

Points de fin par défaut

Les services du bloc de création Data Dictionary sont exposées par défaut sur Flex Remoting et Spring HTTP.

Dépendance du bloc de création Data Dictionary au service Expression Evaluator (EXM)

Le service Expression Evaluator (EXM) est exposé en tant que bloc de création. Le bloc de création Data Dictionary dépend de EXM, qui est un composant enfichable. Le service Expression Evaluator prend en charge l’évaluation EL JSP. Le service Expression Evaluator est utilisé pour l’évaluation des DDE calculés pour le dictionnaire de données. Les points suivants détaillent les fonctionnalités d’évaluation du DDE que le bloc de création Data Dictionary prend en charge à l’aide de EXM.

  1. Un DDE peut être marqué comme calculé et l’expression EL JSP correspondante peut être fournie par l’interface utilisateur de l’Editeur du dictionnaire de données.

  2. L’expression calculée pour un DDE peut être basée sur les valeurs d’autres DDE. Par exemple, un DDE portant le nom « fullName » peut porter une expression ${firstName}$ {lastName} qui évalue le nom complet comme une concaténation des premier et dernier noms.

    Remarque : « firstName » et « lastName » sont les noms de référence des DDE respectifs.
  3. Le bloc de création Data Dictionary ne prend pas en charge l’imbrication d’expressions calculées. Un opérande dans l’expression ne peut pas être une autre expression calculée. L’évaluation du DDE calculé s’effectue sur le côté serveur lorsqu’une DDI est en train d’être créée.

  4. Les DDE calculés sont créés en tant que non obligatoire, ce qui signifie que les valeurs nulles sont autorisées dans une DDI.

Flux d’exécution de Data Dictionary

L’exécution du dictionnaire de données doit renvoyer les instances de dictionnaire de données (DDI) correspondant à un dictionnaire de données. L’exécution du dictionnaire de données prend en charge la création de DDI à partir de données d’entrée XML uniquement. La solution présente un fichier de lancement de données d’entrée XML utilisé pour arrêter l’exécution de ses processus. Par exemple, un processus de génération de lettre qui est déclenché avec un fichier d’entrée XML contenant tous les détails pertinents. Les données d’entrée XML doivent confirmer le schéma du schéma XSD à partir duquel un dictionnaire de données a été créé.

Si un dictionnaire de données a été créé manuellement, aucun schéma XSD par défaut n’existe. Lorsqu’un dictionnaire de données est créé à partir d’un schéma XSD et que l’importation a été modifiée, il est possible pour sa structure de découpler avec le schéma XSD de départ. Pour éviter ces erreurs, le bloc de création Data Dictionary fournit un outil pour générer un exemple XML correspondant au dictionnaire de données. Le système principal permet de s’assurer que les données d’entrée XML sont fournies au système au format compatible avec l’exemple XML. L’exécution du dictionnaire de données crée une DDI à partir des données d’entrée XML en fonction d’un dictionnaire de données de référence. La DDI peut alors être utilisée pour remplir les valeurs dans l’application. Le système ne prend pas en charge la réécriture d’instances de dictionnaire de données. Toutefois, une instance de dictionnaire de données peut être sérialisée et transmise au cours des flux de travaux.

Définition de flux de bout en bout

Le schéma ci-dessous décrit en détail les définitions de dictionnaire de données de bout en bout. Il comprend le processus d’intégration avec notamment les personnes impliquées, les outils utilisés, les métadonnées de stockage ainsi que l’accès lors de l’exécution :

Afficher le graphique en taille réelle
Définition du dictionnaire de données
  1. Le propriétaire de processus d’entreprise peut utiliser l’Editeur du dictionnaire de données pour créer un dictionnaire de données manuellement. Pour plus d’informations sur la création du dictionnaire de données à l’aide de l’Editeur du dictionnaire de données, voir Création d’un dictionnaire de données.

  2. Le propriétaire de processus d’entreprise peut également utiliser l’Editeur du dictionnaire de données pour créer un dictionnaire de données grâce à l’importation d’un schéma.

  3. Lors de l’enregistrement du dictionnaire de données, la définition des métadonnées du dictionnaire de données est stockée en arrière-plan, c’est-à-dire dans le référentiel de contenu.

  4. Le propriétaire de processus d’entreprise peut exporter le dictionnaire de données à l’aide de l’Editeur du dictionnaire de données, sous la forme d’un modèle FML annoté. Ce modèle annoté peut ensuite être importé pour créer un dictionnaire de données.

  5. Un développeur peut utiliser le schéma XSD du domaine pour créer à la fois le dictionnaire de données et les artefacts tels que les formulaires de l’application. Designer peut être utilisé pour l’importation d’un schéma XSD et la création des formulaires pertinents à partir de celui-ci.

  6. Le développeur de solution crée la solution en termes d’artefacts, tels que les formulaires requis par l’application, les classes Java correspondantes, les composants Flex et ainsi de suite.

  7. Le développeur de solution les assemble dans une archive déployable. La solution est ensuite déployée. La solution peut être testée avec la fonctionnalité de génération XML d’un exemple de dictionnaire de données exposée à l’aide de l’Editeur du dictionnaire de données.

  8. La solution client déployée accède à la fois aux métadonnées du dictionnaire de données et à l’exécution du dictionnaire de données pour accomplir ses flux. Par exemple, une application de création de document accède au dictionnaire de données pour effectuer le rendu des champs obligatoires.

  9. L’exécution du dictionnaire de données accède aux métadonnées du dictionnaire de données afin de créer des instances de dictionnaire de données (DDI). Pour plus d’informations sur l’exécution du dictionnaire de données, voir Flux d’exécution de Data Dictionary.

  10. L’exécution du dictionnaire de données ne s’intègre pas directement aux systèmes hérités en arrière-plan.

Mappage des éléments du dictionnaire de données avec le schéma XML

Le bloc de création Data Dictionary permet la création de dictionnaires de données à partir d’un schéma XML ou directement depuis l’interface utilisateur de Data Dictionary. Tous les éléments de dictionnaire de données (DDE) au sein d’un dictionnaire de données ont un champ de liaison XML pour stocker la liaison du DDE à un élément dans le schéma XML. La liaison dans chaque DDE dépend du DDE parent.

Les exemples de modèles et de code indiquant les détails d’implémentation pour le bloc de création Data Dictionary sont détaillés ci-dessous.

Mappage des éléments simples (primitifs)

Un DDE primitif représente un champ ou un attribut atomique par nature. Les DDE primitifs définis hors type complexe (DDE Composite) ou élément répété (DDE Collection) peuvent être stockés à n’importe quel emplacement au sein du schéma XML. L’emplacement des données correspondant à un DDE primitif ne dépend pas du mappage de son DDE parent. Les DDE primitifs utilisent les informations de mappage à partir du champ de liaison XML pour déterminer sa valeur et le mappage les traduit par l’un des objets suivants :

  • un attribut ;

  • un élément ;

  • un contexte de texte ;

  • rien (un DDE ignoré).

L’exemple suivant montre un schéma simple.

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
  <xs:element name='age' type='integer'/> 
  <xs:element name='price' type='decimal'/> 
</xs:schema>

Elément du dictionnaire de données

Liaison XML par défaut

age

/age

price

/price

Mappage des éléments composites

La liaison n’est pas prise en charge pour les éléments composites ; si la liaison est fournie, elle est ignorée. La liaison pour tous les DDE enfants élémentaires de type primitif doit être absolue. L’autorisation de mappage absolu pour les éléments enfant d’un DDE composite offre plus de flexibilité en termes de liaison XPath. Le mappage d’un DDE composite à un type complexe d’élément de schéma XML limite la portée de la liaison pour ses éléments enfant.

L’exemple suivant illustre le schéma d’une note.

<xs:element name="note"> 
    <xs:complexType> 
        <xs:sequence> 
            <xs:element name="to" type="xs:string"/> 
            <xs:element name="from" type="xs:string"/> 
            <xs:element name="heading" type="xs:string"/> 
            <xs:element name="body" type="xs:string"/> 
        </xs:sequence> 
    </xs:complexType> 
</xs:element> 

Elément du dictionnaire de données

Liaison XML par défaut

note

vide (nulle)

to

/note/to

from

/note/from

heading

/note/heading

body

/note/body

Mappage des éléments Collection

Un élément Collection est uniquement mappé à un autre élément Collection de cardinalité > 1. Les DDE enfants d’un DDE Collection ont des liaisons XML relatives (locales) par rapport à la liaison XML de leur DDE parent. Etant donné que les DDE enfants d’un élément Collection doivent avoir la même cardinalité que celle du DDE parent, la liaison relative est chargée d’assurer la contrainte de cardinalité de sorte que le DDE enfant ne pointe pas vers un élément de schéma XML non répété. Dans l’exemple ci-dessous, la cardinalité de « TokenID » doit être la même que celle de « Tokens », son DDE Collection parent.

Lors du mappage d’un DDE Collection à un élément de schéma XML :
  • La liaison de la DDE correspondant à l’élément Collection doit être de type XPath absolue.

  • Ne fournissez aucune liaison pour le DDE représentant le type d’élément Collection. Si une liaison est fournie, elle sera ignorée.

  • La liaison pour tous les DDE enfants d’éléments Collection doit être relative à l’élément Collection parent.

Le schéma XML ci-dessous déclare un élément portant le nom Tokens et doté d’un attribut maxOccurs de type « unbounded » (illimité). Par conséquent, Tokens est un élément Collection.

<?xml version="1.0" encoding="utf-8"?> 
<Root> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
</Root> 
Le fichier Token.xsd associé à cet exemple serait :
<xs:element name="Root"> 
  <xs:complexType> 
    <xs:sequence> 
      <xs:element name="Tokens" type="TokenType" maxOccurs="unbounded"/> 
    </xs:sequence> 
  </xs:complexType> 
</xs:element> 
  
<xs:complexType name="TokenType"> 
  <xs:sequence> 
    <xs:element name="TokenID" type="xs:string"/> 
    <xs:element name="TokenText"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TextHeading" type="xs:string"/> 
          <xs:element name="TextBody" type="xs:string"/> 
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 
  </xs:sequence> 
</xs:complexType>

Elément du dictionnaire de données

Liaison XML par défaut

Root

vide (nulle)

Tokens

/Root/Tokens

Composite

vide (nulle)

TokenID

TokenID

TokenText

vide (nulle)

TokenHeading

TokenText/TextHeading

TokenBody

TokenText/TextBody

Exemples

Les exemples de code indiquant les détails d’implémentation pour le bloc de création Data Dictionary sont détaillés ci-dessous.

Exemple de schéma pouvant être importé dans le dictionnaire de données

L’exemple suivant illustre le schéma d’une société.

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns="DCT" targetNamespace="DCT" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified" attributeFormDefault="unqualified"> 
  <xs:element name="Company"> 
    <xs:complexType> 
      <xs:sequence> 
        <xs:element name="Name" type="xs:string"/> 
        <xs:element name="Type" type="xs:anySimpleType"/> 
        <xs:element name="HeadOfficeAddress" type="Address"/> 
        <xs:element name="SalesOfficeAddress" type="Address" minOccurs="0"/> 
        <xs:element name="HeadCount" type="xs:integer"/> 
        <xs:element name="CEO" type="Employee"/> 
        <xs:element name="Workers" type="Employee" maxOccurs="unbounded"/> 
      </xs:sequence> 
    </xs:complexType> 
  </xs:element> 
  <xs:complexType name="Employee"> 
    <xs:complexContent> 
      <xs:extension  base="Person"> 
        <xs:sequence> 
          <xs:element name="CurrAddress" type="Address"/> 
          <xs:element name="DOJ" type="xs:date"/> 
          <xs:element name="Phone" type="xs:integer"/> 
        </xs:sequence> 
      </xs:extension> 
    </xs:complexContent> 
  </xs:complexType> 
  <xs:complexType name="Person"> 
    <xs:sequence> 
      <xs:element name="PersonName" type="Name"/> 
      <xs:element name="DOB" type="xs:dateTime"/> 
    </xs:sequence> 
  </xs:complexType> 
  <xs:complexType name="Name"> 
    <xs:sequence> 
      <xs:element name="FirstName" type="xs:string"/> 
      <xs:element name="MiddleName" type="xs:string"/> 
      <xs:element name="LastName" type="xs:string"/> 
    </xs:sequence> 
  </xs:complexType> 
  <xs:complexType name="Address"> 
    <xs:sequence> 
      <xs:element name="Street" type="xs:string"/> 
      <xs:element name="City" type="xs:string"/> 
      <xs:element name="State" type="xs:string"/> 
      <xs:element name="Zip" type="xs:string"/> 
    </xs:sequence> 
  </xs:complexType> 
</xs:schema>

Exemple de modèle de données

L’exemple de code suivant décrit en détail les exportations FML du dictionnaire de données d’une société, les annotations du dictionnaire de données utilisant l’annotation DDS. Cet exemple contient également deux groupes d’annotation : General et XmlBinding. La description et XPath sont deux annotations respectives qui sont capturées dans le cadre de ces deux groupes d’annotations.

<model xmlns="http://ns.adobe.com/Fiber/1.0"> 
  <annotation name="DDS"> 
    <item name="name">Company</item> 
    <item name="displayName">Company</item> 
    <item name="version">1.0</item> 
    <item name="type">NONSYSTEM</item> 
    <item name="extended_k1">v1</item> 
    <item name="extended_k2">v2</item> 
  </annotation> 
  <annotation name="General"> 
    <item name="description"/> 
  </annotation> 
  <entity name="Company"> 
    <annotation name="DDS"> 
      <item name="setAsTopLevelWithName">Company</item> 
      <item name="displayName">Company</item> 
      <item name="extended_k3">v3</item> 
      <item name="extended_k4">v4</item> 
    </annotation> 
    <annotation name="General"> 
      <item name="description"/> 
    </annotation> 
    <annotation name="XMLBinding"> 
      <item name="xpath">/Company</item> 
    </annotation> 
    <annotation name="LiveCycleES"> 
      <item name="generate_type">true</item> 
    </annotation> 
    <property name="Name" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">Name</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Name</item> 
      </annotation> 
    </property> 
    <property name="Type" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">Type</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Type</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-one" name="HeadOfficeAddress" required="true" type="Address"> 
      <annotation name="DDS"> 
        <item name="displayName">HeadOfficeAddress</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/HeadOfficeAddress</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-one" name="SalesOfficeAddress" required="false" type="Address"> 
      <annotation name="DDS"> 
        <item name="displayName">SalesOfficeAddress</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/SalesOfficeAddress</item> 
      </annotation> 
    </property> 
    <property name="HeadCount" required="true" type="double"> 
      <annotation name="DDS"> 
        <item name="displayName">HeadCount</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/HeadCount</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-one" name="CEO" required="true" type="Employee"> 
      <annotation name="DDS"> 
        <item name="displayName">CEO</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/CEO</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-many" name="Workers" required="true" type="Employee[]"> 
      <annotation name="DDS"> 
        <item name="displayName">Workers</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Workers</item> 
      </annotation> 
    </property> 
  </entity> 
  <entity name="Address"> 
    <annotation name="LiveCycleES"> 
      <item name="generate_type">true</item> 
    </annotation> 
    <property name="Street" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">Street</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Street</item> 
      </annotation> 
    </property> 
    <property name="City" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">City</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/City</item> 
      </annotation> 
    </property> 
    <property name="State" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">State</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/State</item> 
      </annotation> 
    </property> 
    <property name="Zip" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">Zip</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Zip</item> 
      </annotation> 
    </property> 
  </entity> 
  <entity name="Employee"> 
    <annotation name="LiveCycleES"> 
      <item name="generate_type">true</item> 
    </annotation> 
    <property cardinality="one-to-one" name="PersonName" required="true" type="Name"> 
      <annotation name="DDS"> 
        <item name="displayName">PersonName</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/PersonName</item> 
      </annotation> 
    </property> 
    <property name="DOB" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">DOB</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/DOB</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-one" name="CurrAddress" required="true" type="Address"> 
      <annotation name="DDS"> 
        <item name="displayName">CurrAddress</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/CurrAddress</item> 
      </annotation> 
    </property> 
    <property name="DOJ" required="true" type="date"> 
      <annotation name="DDS"> 
        <item name="displayName">DOJ</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/DOJ</item> 
      </annotation> 
    </property> 
    <property name="Phone" required="true" type="double"> 
      <annotation name="DDS"> 
        <item name="displayName">Phone</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Phone</item> 
      </annotation> 
    </property> 
  </entity> 
  <entity name="Name"> 
    <annotation name="LiveCycleES"> 
      <item name="generate_type">true</item> 
    </annotation> 
    <property name="FirstName" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">FirstName</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/FirstName</item> 
      </annotation> 
    </property> 
    <property name="MiddleName" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">MiddleName</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/MiddleName</item> 
      </annotation> 
    </property> 
    <property name="LastName" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">LastName</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/LastName</item> 
      </annotation> 
    </property> 
  </entity> 
</model>

Démarrage du dictionnaire de données par le biais du client Flex

Pour utiliser cet exemple, ajoutez adobe-dct-flex-services.swc au chemin de classe de votre projet Flex.

Récupérez l’instance singleton du service de dictionnaire de données.

 DataDictionaryUtilServiceImpl ddUtilService = DataDictionaryUtilServiceImpl.getInstance();

Démarrer le service utilitaire du dictionnaire de données, puis transmettez l’ID du dictionnaire de données en tant que paramètre d’exportation d’un dictionnaire de données sous forme de modèle FML annoté.

/** 
 *  Exporting Data Dictionary 
 */ 
private function exportAsFML(event:*):void 
{ 
  var ddId:String = //The id of an existing data dictionary. 
  ddUtilService.exportDataDictionaryAsFML(ddId, handleSuccess, handleFault); 
} 
/* Success Handler */ 
private function handleSuccess(event:DCTServiceEvent):void 
{ 
   var ddFML:String = event.data as String;         
} 
/* Fault Handler */ 
private function handleFaultevent:FaultEvent):void 
{ 
   trace("Error exporting DataDictionary"+ (event.message as ErrorMessage).faultCode );                  
}