Conversions =========== Nous décrivons ici des règles de conversions permettant de passer d'une version de LHÉO à une autre. Ces règles de conversions sont celles qui sont utilisées dans l'outil *LHÉO Studio* qui permet notamment d'effectuer automatiquement ces conversions. Passage de 2.2 à 2.3 -------------------- La compatibilité ascendante de 2.2 à 2.3 permet a priori de n'avoir qu'à changer l'espace de nom pour passer d'une version à l'autre. Cependant, la conception de la version 2.3 s'est fondée sur les usages de nombreux éléments ``extra`` et les a transformés en éléments natifs du langage. Le principe de transformation est donc, quand c'est possible, de transformer ces éléments ``extra`` en vrais éléments natifs. Par ailleurs, lors de l'opération inverse (2.3 vers 2.2), les nouveaux éléments natifs de 2.3 sont à nouveau transformés en éléments ``extra``: la transformation doit donc être *conversative* dans le sens où transformer un flux XML 2.2 avec des ``extras`` vers 2.3 puis à nouveau vers 2.2 avec des ``extras`` doit permettre de retrouver le même flux (de la même manière, transformer un flux 2.3 vers 2.2 avec des ``extras`` puis à nouveau vers 2.3 doit permettre de retrouver un flux identique). Espace de nom ^^^^^^^^^^^^^ Le contenu de l'attribut ``xmlns="http://www.lheo.org/2.2"`` devient ``http://lheo.gouv.fr/2.3``. Horodatages et URI ^^^^^^^^^^^^^^^^^^ Opération inverse de :ref:`horodatages`: on examine dans l'ordre les attributs ``tag``, ``info`` ou ``ref`` à la recherche des attributs 2.3: si on en trouve, on les promeut en tant que *vrai* attribut. Code CERTIFINFO ^^^^^^^^^^^^^^^ Pas de changement. Passage de 2.3 à 2.2 -------------------- La règle générale est de déplacer les éléments de 2.3 n'existant pas en 2.2 dans des éléments ``extra`` et ``extras``. Ces éléments sont toujours positionnés dans un élément ``extras`` englobant ayant un attribut ``info`` valant ``conversion2003`` (``2003`` est un entier indiquant la version 2.3 de LHÉO). Quand un élément est transformé en ``extra``, on reproduit sur cet élément ``extra`` les attributs présents sur l'élément original. Ainsi: .. code-block:: xml ..code.. sera transformé en: .. code-block:: xml ..code.. Transformation de l'espace de nom (C2003-2002-1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Le contenu de l'attribut ``http://lheo.gouv.fr/2.3`` devient ``xmlns="http://www.lheo.org/2.2"``. Cette transformation est effectuée sur tout élément où ce contenu d'espace de nom est rencontré. .. _horodatages: Horodatages et URI (C2003-2002-2) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Les trois attributs ``horodatage-creation``, ``horodatage-modification``, ``horodatage-export`` quand ils sont présents, sont intégrés à l'attribut ``tag``. Les attributs sont encodés de la manière suivante: Par exemple: .. code-block:: xml ... ... est transformé en: .. code-block:: xml ... c'est-à-dire une chaîne commençant par ``conversion2003``, un ``;``, puis la liste des attributs séparés pas ``;``, en séparant la clef de la valeur par un caractère ``@``. Noter que dans le cas de l'URI, les caractères ``@`` et ``;`` sont *percent encoded*. Note: on choisit ici d'encoder les attributs dans un autre attribut au même niveau plutôt qu'un élément ``extra``, car il n'y a pas d'extra pour tous les éléments, à la différence des attributs. Il se peut par conséquent que l'attribut `tag` contienne déjà une valeur. Par convention, en recopie cette valeur dans la chaîne précédemment créée, préfixée par ``;tag@``. Code CERTIFINFO / Code RNCP (C2003-2002-3) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dans le cas d'un code dépassant 6 positions, le code CERTIFINFO ou RNCP est placé dans un élément ``extra`` dans les ``extras info="conversion2003"`` de ``certification`` spécifiques à la conversion. Par exemple, le bloc suivant: .. code-block:: xml ... 987654321 RNCP654321 ... est transformé en: .. code-block:: xml ... 987654321 RNCP654321 ... SIRET du lieu de formation (C2003-2002-4) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Déplacement dans l'élément ``extras infos="conversion2003"`` de ``lieu-de-formation`` de tout le bloc ``SIRET-lieu-formation``. Passage de: .. code-block:: xml ... ... ...siret... ...extras... ... ... ... à: .. code-block:: xml ... ... ... ...siret... ...extras... ... ... Codes UAI (C2003-2002-5) ^^^^^^^^^^^^^^^^^^^^^^^^ Code UAI dans l'organisme de formation responsable ``code-UAI-organisme-formation``, le lieu de formation ``code-UAI-lieu-formation`` et l'organisme formateur ``code-UAI-formateur``: .. code-block:: xml ... ... ... ... ... ... Déplacement dans les éléments extras au même niveau: .. code-block:: xml ... ... ...code UAI... ...extras... ... Codes ELU, CPF, RS (C2003-2002-6) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Les éléments ``code-ELU``, ``code-CPF`` et ``code-RS`` sont placés dans les éléments ``extras`` les plus proches (dans ``certification`` ou ``code-type-formation``). Exemple: .. code-block:: xml ...code CPF... Type de contact (C2003-2002-7) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ L'élément ``type-contact``, présent dans ``contact-formation``, ``contact-session``, ``contact-organisme``, ``contact-formateur`` est déplacé dans les ``extras`` de ces contacts. Cette opération doit être faite sur chaque contact (en 2.3 ces éléments sont multi-valués). Dans ``contact-formation``: .. code-block:: xml ... 2 ... ... Transformé en: .. code-block:: xml ... ... 2 ... Même processus dans ``contact-session``, ``contact-organisme``, ``contact-formateur``. Contact de la session (C2003-2002-8) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Tous les ``contact-session`` sont passés dans un bloc ``extras info="conversion2003"`` à la fin de l'élément ``session`` englobant. Multivaluations des contacts (C2003-2002-9) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Tous les ``contact-formation`` au delà d'un seul sont passés dans un bloc ``extras info="conversion2003"`` à la fin de l'élément ``formation`` englobant. - Tous les ``contact-organisme`` au delà d'un seul sont passés dans un bloc ``extras info="conversion2003"`` à la fin de l'élément ``organisme-formation-responsable`` englobant. - Tous les ``contact-formation`` au delà d'un seul sont passés dans un bloc ``extras info="conversion2003"`` à la fin de l'élément ``organisme-formation`` englobant. Dénomination dans les adresses (C2003-2002-10) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``denomination`` passage en ``extra`` avec émission d'un avertissement pour la potentielle mauvaise adresse. Option ``--cut-denomination``: transformation des 50 premiers caractères de cette dénomination dans un élément ````, en coupant le texte au blanc le plus approprié (ou à 50 pile quand il n'y a pas de blanc). Le contenu complet de l'élément dénomination est stocké dans l'attribut ``ref`` avec la forme: ``conversion2003-action-cut-denomination;CONTENU_ORIGINAL``. Si l'attribut ``ref`` a déjà un contenu, le processus s'arrête en affichant une erreur. Si il y a un élément ```` surnuméraire, celui-ci est supprimé et positionné en ````, avec émission d'un avertissement. Note: cette nouvelle "ligne" un peu spécifique n'aurait pas du être définie avec 255 caractères. Il est difficile d'avoir une adresse postale avec une telle longueur. Lieu de formation (C2003-2002-11) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Si il n'y a pas de lieu de formation, créer un lieu vide avec la ligne "``à distance``" ou la valeur de l'option ``--empty-lieu="XXX"``. - Si il y a plus d'un seul lieu de formation, par défaut on garde le premier. Avec l'option ``--keep-principal``, on garde le lieu où l'attribut ``info="principal"`` est défini. Note: la langue de formation devrait être définie sur trois positions, afin de permettre l'expression de plus de langues, notamment la langue des signes. Organisme formateur (C2003-2002-12) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Si il y a plus d'un seul organisme formateur, par défaut on garde le premier. Avec l'option ``--keep-principal``, on garde l'organisme où l'attribut ``info="principal"`` est défini. Multivaluation de langue de formation (C2003-2002-13) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Si il y a plus d'un élément ``langue-formation`` dans l'élément ``action``, les éléments en surplus sont passés dans le bloc ``extras info="conversion2003"`` de l'action. URL de la session (C2003-2002-14) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Passage de l'URL de la session ``url-session`` dans le bloc ``extras info="conversion2003"`` de cette dernière. Recrutement (C2003-2002-15) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Bloc ``recrutement`` déplacé dans le bloc ``extras info="conversion2003"`` de ``session``. - Élément ``modalite-recrutement`` en ``extra`` - Élément ``code-perimetre-recrutement`` en ``extra`` - Élément ``infos-perimetre-recrutement`` en ``extra`` - Élément ``a-distance`` en ``extra`` - Élément ``nb-places`` en ``extra`` - Élément ``heure-debut`` en ``extra`` - Élément ``heure-fin`` en ``extra`` - Élément ``commentaire`` en ``extra`` Enseignements (C2003-2002-16) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Blocs ``enseignement`` déplacés dans le bloc ``extras info="conversion2003"`` de ``session``. - Élément ``libelle-enseignement`` en ``extra`` - Élément ``type-enseignement`` en ``extra`` - Élément ``obligatoire`` en ``extra`` - Élément ``commentaire`` en ``extra`` Équipements (C2003-2002-17) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Blocs ``equipement`` déplacés dans le bloc ``extras info="conversion2003"`` de ``session``. - Élément ``type-equipement`` en ``extra`` - Élément ``cout-indicatif-equipement`` en ``extra`` - Élément ``commentaire`` en ``extra`` Références à des certifications (C2003-2002-18) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Passage des blocs ``reference-certification`` en ``extras info="conversion2003"`` des éléments englobants (``organisme-formateur``, ``session``). Cet élément est également présent dans ``blocs-competences`` mais cet élément est lui-même dans un bloc ``extras``. Les sous-éléments ``reference-code-RNCP``, ``reference-code-RS`` et ``reference-code-CERTIFINFO`` passent en ``extra``. Blocs de compétences (C2003-2002-19) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Passage des blocs ``blocs-competences`` en ``extras info="conversion2003"`` de ``session``. - Élément ``validation-blocs`` en ``extra`` - Élément ``reference-certification`` en ``extras`` - Élément ``bloc-competences`` en ``extras`` - Élément ``libelle-bloc`` en ``extra`` - Élément ``code-bloc`` en ``extra`` Cycles et Effectifs (C2003-2002-20) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Passage des blocs ``cycle`` en ``extras info="conversion2003"`` de ``session``. - Élément ``type-cycle`` en ``extra`` - Élément ``annee-cycle`` en ``extra`` - Élément ``effectif-minimal`` en ``extra`` - Élément ``capacite-simultanee`` en ``extra`` - Élément ``capacite-cumulee`` en ``extra`` - Élément ``alternance`` en ``extras`` - Élément ``type-alternance`` en ``extra`` - Élément ``rythme-alternance`` en ``extras`` - Élément ``unite-rythme-alternance`` en ``extra`` - Élément ``unites-entreprise`` en ``extra`` - Élément ``unites-centre`` en ``extra`` - Passage de l'élément ``duree-cycle`` en ``extras info="conversion2003"`` de ``action``. Table des financeurs (C2003-2002-21) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Les nouvelles entrées (celles supérieures ou égales à 18), sont positionnées à 0 (Autre). Le code original est conservé dans ``ref`` avec le préfixe: ``conversion2003-action-code-financeur;``. Table des niveaux (C2003-2002-22) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Les ``code-niveau-entree`` et ``code-niveau-sortie`` sont transformés: - Niveau V (4) <-> Niveau 3 (13) - Niveau IV (5) <-> Niveau 4 (14) - Niveau III (6) <-> Niveau 5 (15) - Niveau II (7) <-> Niveau 6 (16) - Autres niveaux supérieurs ou égaux à 11: mis à 0 - Niveaux < à 10, inchangés. Le code original est conservé dans ``ref`` avec le préfixe: ``conversion2003-action-code-niveau;``.