02 - Saisie de la métadonnée dans ori-oai-md-editor

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

L'éditeur LOM auteur (Fiche LOM Simple) ne propose pas l'édition de cette métadonnée « semantic density ». On va ici ajouter cette possibilité. Qui plus est on va en faire une métadonnée obligatoire (cela aura à la fois des conséquences dans l'éditeur de métadonnées et dans la partie workflow comme nous allons le constater).
Le module ori-oai-md-editor est basé sur l'application Orbeon Forms, les « sources » de l'éditeur correspondent à des fichiers XML utilisés directement par l'application Orbeon Forms.

Les fichiers à modifier se trouvent dans le projet source [ORI_HOME]/src/ori-oai-md-editor-svn.

Dans ce répertoire et ses sous-répertoires un certain nombre d'éléments concernent l'ensemble de l'application Orbeon Forms. Ce qui est spécifique à ori-oai-md-editor se trouve dans le répertoire [ORI_HOME]/src/ori-oai-md-editor-svn/WEB-INF/resources/forms/ori-md-editor/ que nous nommerons dans la suite MD_EDITOR_HOME, c'est dans ce répertoire que nous allons travailler.

Les différents éditeurs de métadonnées se trouvent dans ce répertoire. Ici nous pourrions en créer un nouveau en copiant collant simplement le répertoire lom-author-light. On va se contenter ici de modifier ce formulaire. Le point d'entrée du formulaire a proprement parlé est lom-author-light/form.xhtml. Ce formulaire est accessible directement via l'url http:// [HOST_INSTALL]: [PORT_INSTALL]/ori-oai-md-editor/fr/ori-md-editor/lom-author-light/new

Le formulaire lom-author-light  repose sur le modèle MD_EDITOR_HOME/lomfr-author-light/form/main-model.xml. Dans le bloc commenté « Vocabulary instances », de ce fichier, on ajoute une nouvelle instance de vocabulaire :

<xforms:instance id="common_lom_educ_semantic_density"
      src="/fr/service/custom/ori-md-editor/oriGetVocab?vocab=common_lom_educ_semantic_density"
      xxforms:readonly="true"
      xxforms:cache="true"/>

form.xhtml inclut aussi le fichier content-xforms.xml, dans lequel est défini le contenu du formulaire. On le modifie comme suit :

On propose d'ajouter le nouveau bloc correspondant à « semantic density » entre le bloc de « Learning Resource Type » et celui de « Context » (en prenant exemple sur ces derniers qui sont de même nature que « semantic density » :

<tr>
       <td class="table-legend">
         Densité Sémantique
       </td>
       <td>
        <widget:ori-block element="lom:semanticDensity" minOccurs="1" maxOccurs="1" parent-element="lom:educational" preceding-elements="lom:interactivityType | lom:learningResourceType | lom:interactivityLevel">
          <xforms:select1 ref="lom:value">
                   <xforms:item>
                           <xforms:label>[Select]</xforms:label>
                           <xforms:value/>
                   </xforms:item>
      <xforms:itemset nodeset="xxforms:instance('common_lom_educ_semantic_density')/vdex:term">
             <xforms:label ref="vdex:caption/vdex:langstring"/>
             <xforms:value ref="vdex:termIdentifier"/>
            </xforms:itemset>
          </xforms:select1>
        </widget:ori-block>
       </td>
</tr>


On pourrait améliorer cela en ne mettant pas « Densité Sémantique » en dur mais en utilisant un vocabulaire approprié, en ajoutant de l'aide ... (comme pour les autres blocs déjà présents).

Ceci fait, et parce que l'on utilise ici la facilité des « widget:ori-block » amené par ori-oai-md-editor dans Orbeon Forms, il faudrait normalement vérifier (et ajouter si nécessaire) que l'on a bien dans les fichiers MD_EDITOR_HOME/common/i18n/fr_FR.xml et MD_EDITOR_HOME/common/i18n/en_EN.xml les balises du type :

<add-semanticDensity>Ajout d'une densité sémantique</add-semanticDensity>
<del-semanticDensity>Suppression de la densité sémantique</del-semanticDensity>

Même si ici :

  • elles existent déjà (car utilisées pour l'éditeur LOM complet)
  • elles ne serviront pas, car on ne permet pas ici de supprimer la balise (minOccurs = 1) et on va faire en sorte que celle-ci soit présente par défaut (et donc que l'utilisateur n'ait pas besoin de l'ajouter, remarquez également que si la balise est présente par défaut, l'utilisateur ne pourra pas en ajouter une nouvelle : maxOccurs = 1 [cela est imposé par le schéma LOM]).

Vous pouvez stopper le tomcat, redéployer le module via ant all et démarrer le tomcat pour vérifier les modifications.

=> A ce stade, le formulaire http:// [HOST_INSTALL]: [PORT_INSTALL]/ori-oai-md-editor/fr/ori-md-editor/lom-author-light/new  doit vous donner la possibilité d'ajouter cette nouvelle balise.

Comme dit ci-dessus pour que la balise soit présente par défaut, il faut modifier ici le fichier utilisé pour initialiser le XML LOM édité: [MD_EDITOR_HOME]/lom-author-light/blank/lom-author-light-blank.xml.

On y ajoute simplement le bloc

<lom:semanticDensity>
   <lom:source>LOMv1.0</lom:source>
   <lom:value/>
</lom:semanticDensity>

au bon endroit.

Attention, ce fichier n'est pas utilisé lorsqu'on passe par le module de workflow pour éditer une fiche du workflow : dans le module de workflow, la fiche qui initialise un référencement est celle qui correspond au patron (template) de fiche pour le workflow utilisé :

  • le patron par défaut dans le module ori-oai-workflow (défini dans le fichier [ORI_HOME]/src/ori-oai-workflow-svn/conf/properties/workflows/default_lom_easy/addonContext.xml via la propriété « defaultXmlFile »)

  • ou le patron qu'a éventuellement personnalisé l'utilisateur.

Déprécié ?

Reste enfin une dernière subtilité qui concerne le chargement des vocabulaires. ORI-OAI-MD-EDITOR permet de précharger puis recharger régulièrement les vocabulaires qui sont issus d'appels Web Services à un module ori-oai-vocabulary. Pour ce faire, il utilise la possibilité de partager une même instance xforms entre plusieurs clients et formulaires ainsi qu'une tâche de rechargement qui s'opère régulièrement : d'où le paramètre vocab-cache-time dans le fichier config.xml.

Afin que le nouveau vocabulaire common_lom_educ_semantic_density soit pris en compte dans ces rechargements réguliers, il faut le spécifier à la fois dans reload-vocab/load-vocab.xhtml et reload-vocab/unload-vocab.xhtml. Vous ajouterez ainsi comme il se doit et au bon endroit la ligne :

<xforms:instance
     id="common_lom_educ_semantic_density"
     src="/ori-md-editor/vocab/common_lom_educ_semantic_density"
     xxforms:readonly="true"
     xxforms:shared="application"/>

dans reload-vocab/load-vocab.xhtml et reload-vocab/unload-vocab.xhtml,

ainsi que la ligne

<xforms:dispatch name="xxforms-instance-invalidate" target="common_lom_educ_semantic_density"/>

Dans reload-vocab/unload-vocab.xhtml.

Vous pouvez maintenant mettre à jour toutes ces modifications en stoppant le tomcat, déployant le module via ant all et en démarrant le tomcat.

Note : Pour un exemple plus poussé d'ajout de métadonnées dans l'éditeur, voyez en Annexe la partie « Ajout d'une métadonnée dans un formulaire d'ORI-OAI-MD-EDITOR »

  • No labels