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 Horodatages et URI (C2003-2002-2): 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-CPF info="intitulé" ref="abcd">..code..</code-CPF>
sera transformé en:
<extra info="code-CPF">
<extra info="intitulé" ref="abcd">..code..</extra>
</extra>
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 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:
<lheo xmlns=".../2.3" horodatage-creation="2002-05-30T09:00:00"
horodatage-export="2002-05-30T09:05:00" uri="https://t.com/hello@bla;val=23">
...
<extras>...</extras>
</lheo>
est transformé en:
<lheo xmlns=".../2.2"
tag="conversion2003;uri@https://t.com/hello%40bla%3Bval=23;horodatage-creation@2002-05-30T09:00:00;horodatage-export@2002-05-30T09:05:00">
...
</lheo>
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:
<formation>
...
<certification>
<code-CERTIFINFO info="v34">987654321</code-CERTIFINFO>
<code-RNCP>RNCP654321</code-RNCP>
</certification>
...
</formation>
est transformé en:
<formation>
...
<certification>
<extras info="conversion2003">
<extra info="code-CERTIFINFO"><extra info="v34">987654321</extra></extra>
<extra info="code-RNCP"><extra>RNCP654321</extra></extra>
</extras>
</certification>
...
</formation>
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:
<formation>
...
<action>
...
<lieu-de-formation>
<SIRET-lieu-formation info="note">
<SIRET>...siret...</SIRET></extra>
<extras>...extras...</extras>
</SIRET-lieu-formation>
...
</lieu-de-formation>
...
</action>
...
</formation>
à:
<formation>
...
<action>
...
<lieu-de-formation>
...
<extras info="conversion2003">
<extras info="SIRET-lieu-formation">
<extras info="note">
<extra><SIRET>...siret...</SIRET></extra>
<extras>...extras...</extras>
</extras>
</extras>
</extras>
</lieu-de-formation>
...
</action>
...
</formation>
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
:
<formation>
...
<organisme-formation-responsable>
...
<code-UAI-organisme-formation>
<code-UAI>...</code-UAI>
<extras>...</extras>
</code-UAI-organisme-formation>
...
</organisme-formation-responsable>
...
</formation>
Déplacement dans les éléments extras au même niveau:
<formation>
...
<organisme-formation-responsable>
...
<extras info="conversion2003">
<extras info="code-UAI-organisme-formation">
<extras>
<extra info="code-UAI"><extra>...code UAI...</extra></extra>
<extras>...extras...</extras>
</extras>
</extras>
</extras>
</organisme-formation-responsable>
...
</formation>
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:
<extras info="conversion2003">
<extra info="code-CPF"><extra>...code CPF...</extra></extra>
</extras>
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
:
<formation>
...
<contact-formation>
<type-contact>2</type-contact>
...
</contact-formation>
...
</formation>
Transformé en:
<formation>
...
<contact-formation>
...
<extras info="conversion2003">
<extra info="type-contact"><extra>2</extra></extra>
</extras>
</contact-formation>
...
</formation>
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 <ligne>
, 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 <ligne>
surnuméraire,
celui-ci est supprimé et positionné en <extra>
, 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’attributinfo="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’attributinfo="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;
.