Table des matières

Imports dans ChainEdit 3

Principes

Un import consiste à prendre le contenu d'un fichier (en format zip) pour le transformer dans un format reconnu par Chainedit. Par exemple, transformer un fichier OpenOffice (utilisant une feuille de style spécifique) en projet ChainEdit dans le format Opus. Un import a donc un format d'entrée et un format de sortie. Le paramétrage des imports a changé avec ChainEdit 3. Un import est constitué d'un ensemble d'instructions de copie de répertoires et/ou de fichiers, et d'un ensemble de fichiers XSL de traitement de données.

Processus

Après avoir sélectionner un import et donné à ChainEdit un fichier Zip à traiter. La séquence de traitement sera la suivante :

  1. Création d'un répertoire temporaire ici appelé TMP
  2. Dézip du fichier dans le répertoire temporaire
  3. Création d'un répertoire cible ici appelé PROCESS
  4. Lancement des traitements de BEFOREPROCESS (copie des médias dans PROCESS)
  5. Lancement des traitements XSL (le résultat du traitement doit se retrouver dans le répertoire PROCESS à la fin)
  6. Lancement des traitements de AFTERPROCESS (déplacement du fichier XML produit par le traitement XSL dans PROCESS par exemple)
  7. En cas d'erreur les répertoires TMP et PROCESS sont supprimés et le répertoire du projet reste à l'état initial.
  8. En cas de succès le répertoire PROCESS va remplacer le répertoire du projet, le fichier xml contenu dans ce répertoire (il ne doit y en avoir qu'un à la racine) est renommé avec l'identifiant du projet. Le répertoire TMP est supprimé. Le contenu initial est donc supprimé.

Paramétrage

Un import est constitué d'un fichier XML de paramétrage qui se présente comme suit (ici un import odf to opus):

<IMPORT id=“ODFTOOPUS” label=“ODFTOOPUS” chainEditVersion=“3” version=“1.0.0”>

  <TARGETSCHEMA id="OPUS"/>
  <ORIGINALSCHEMA id="ODF"/>
  <BEFOREPROCESS>
	<COPYDIR ordre="0" frompath="\Pictures" topath="\ressources\images"/>    	
  </BEFOREPROCESS>
  <IMPORTXSL>
      <XMLFILE path="content.xml"/>
  	<XSLFILE ordre="0" path="\xsl\ODF_TO_XML_LANCEUR.xsl"/>
      <XSLFILE ordre="1" path="\xsl\ODF_TO_XML_LANCEUR2.xsl"/>
      <XSLFILE ordre="2" path="\xsl\ODF_TO_XML_LANCEUR3.xsl"/>
      <XSLFILE ordre="3" path="\xsl\ODF_TO_XML_LANCEUR4.xsl"/>
      <XSLFILE ordre="4" path="\xsl\ODF_TO_XML_LANCEUR5.xsl"/>
      <XSLFILE ordre="5" path="\xsl\ODF_TO_XML_LANCEUR6.xsl"/>
  </IMPORTXSL>
  <AFTERPROCESS>
	<COPYFILE ordre="0" frompathwithfilename="\Projet\newprojet.xml" topathwithfilename="\project.xml"/>    	
  </AFTERPROCESS>

</IMPORT>

Explications

Un import a un identifiant (id), un label (label) et une version (version) pour information. Il y a aussi un attribut chainEditVersion qui permet de vérifier si cet import est compatible avec ChainEdit à partir de la version indiquée (ici la 3)

  1. MKDIR pour créer un répertoire <MKDIR order=“0” path=“\nomDuRépertoireQuiSeraCrééDansPROCESS” />
  2. COPYCONTENTDIR pour copier les répertoires contenus dans un répertoire parent <COPYDIR ordre=“0” frompath=“\nomDuRépertoireDansTMP” topath=“\nomDuRépertoireQuiSeraCrééDansPROCESS”/> (Si un répertoire A contient des répertoires B et C et un fichier D.xml, cette commande copiera B et C dans le répertoire cible)
  3. COPYDIR pour copier un répertoire <COPYDIR ordre=“0” frompath=“\nomDuRépertoireDansTMP” topath=“\nomDuRépertoireQuiSeraCrééDansPROCESS”/>
  4. COPYFILE pour copier un fichier <COPYDIR ordre=“0” frompathwithfilename=“\nomDuRépertoireDansTMP\NomDuFichier” topathwithfilename=“\nomDuRépertoireQuiSeraCrééDansPROCESS\NomDuFichier”/>