Index: main/plugin-odf-sync/stylesheets/rof4/course2content.xsl
===================================================================
--- main/plugin-odf-sync/stylesheets/rof4/course2content.xsl	(revision 0)
+++ main/plugin-odf-sync/stylesheets/rof4/course2content.xsl	(revision 0)
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2012 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:cdm="http://cdm-fr.fr/2012/CDM"
+	xmlns:cdmfr="http://cdm-fr.fr/2012/CDM-frSchema"
+	exclude-result-prefixes="cdm cdmfr">
+	
+	<xsl:import href="../cdm11/course2content.xsl"/>
+	
+	<!-- @Override Identifiant CDM -->
+	<xsl:template name="course-CDMid">
+		<xsl:attribute name="CDMid"><xsl:value-of select="cdm:courseID"/></xsl:attribute>
+	</xsl:template>
+	
+	<!-- @Override CDM code -->
+	<xsl:template name="course-cdmCode">
+		<xsl:if test="cdm:courseID">
+			<cdmCode type="string"><xsl:value-of select="cdm:courseID"/></cdmCode>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Titre -->
+	<xsl:template name="course-title">
+		<xsl:if test="cdm:courseName">
+			<title type="string"><xsl:value-of select="cdm:courseName"/></title>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Composante -->
+	<xsl:template name="course-orgUnit">
+		<orgUnit type="orgunit" multiple="true">
+			<xsl:for-each select="cdm:contacts/cdm:refOrgUnit">
+				<item><xsl:value-of select="@ref"/></item>
+			</xsl:for-each>
+		</orgUnit>
+	</xsl:template>
+	
+	<!-- @Override Responsable -->
+	<xsl:template name="course-personInCharge">
+		<personInCharge type="person" multiple="true">
+			<xsl:for-each select="cdm:contacts/cdm:refPerson[@role='responsable']">
+				<item><xsl:value-of select="@ref"/></item>
+			</xsl:for-each>
+		</personInCharge>
+	</xsl:template>
+	
+	<!-- @Override Contact -->
+	<xsl:template name="course-contact">
+		<contact type="person" multiple="true">
+			<xsl:for-each select="cdm:contacts/cdm:refPerson[@role='contact']">
+				<item><xsl:value-of select="@ref"/></item>
+			</xsl:for-each>
+		</contact>
+	</xsl:template>
+	
+</xsl:stylesheet>
\ No newline at end of file
Index: main/plugin-odf-sync/stylesheets/rof4/orgunit2content.xsl
===================================================================
--- main/plugin-odf-sync/stylesheets/rof4/orgunit2content.xsl	(revision 0)
+++ main/plugin-odf-sync/stylesheets/rof4/orgunit2content.xsl	(revision 0)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2012 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:cdm="http://cdm-fr.fr/2012/CDM"
+	xmlns:cdmfr="http://cdm-fr.fr/2012/CDM-frSchema"
+	exclude-result-prefixes="cdm cdmfr">
+
+	<xsl:import href="../cdm11/orgunit2content.xsl"/>
+	
+	<!-- @Override OrgUnit ID -->
+	<xsl:template name="orgunit-CDMid">
+		<xsl:attribute name="CDMid"><xsl:value-of select="cdm:orgUnitID"/></xsl:attribute>
+	</xsl:template>
+	
+	<!-- @Override Titre -->
+	<xsl:template name="orgunit-title">
+		<xsl:if test="cdm:orgUnitName">
+			<title type="string"><xsl:value-of select="cdm:orgUnitName"/></title>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override RNE Code -->
+	<xsl:template name="orgunit-rneCode">
+		<xsl:if test="cdm:orgUnitCode[@codeSet='codeUAI']">
+			<rneCode type="string"><xsl:value-of select="cdm:orgUnitCode[@codeSet='codeUAI']"/></rneCode>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Contacts -->
+	<xsl:template name="orgunit-contactsReferences">
+		<contactsReferences type="person" multiple="true">
+			<xsl:for-each select="cdm:contacts/cdm:refPerson">
+				<item><xsl:value-of select="@ref"/></item>
+			</xsl:for-each>
+		</contactsReferences>
+	</xsl:template>
+	
+</xsl:stylesheet>
\ No newline at end of file
Index: main/plugin-odf-sync/stylesheets/rof4/person2content.xsl
===================================================================
--- main/plugin-odf-sync/stylesheets/rof4/person2content.xsl	(revision 0)
+++ main/plugin-odf-sync/stylesheets/rof4/person2content.xsl	(revision 0)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2012 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:cdm="http://cdm-fr.fr/2012/CDM"
+	xmlns:cdmfr="http://cdm-fr.fr/2012/CDM-frSchema"
+	exclude-result-prefixes="cdm cdmfr">
+	
+	<xsl:import href="../cdm11/person2content.xsl"/>
+	
+	<!-- @Override Identifiant CDM -->
+	<xsl:template name="person-CDMid">
+		<xsl:attribute name="CDMid"><xsl:value-of select="cdm:personID"/></xsl:attribute>
+	</xsl:template>
+	
+	<!-- @Override Login -->
+	<xsl:template name="person-login">
+		<login type="string" sync="false"><xsl:value-of select="@ident"/></login>
+	</xsl:template>
+	
+</xsl:stylesheet>
\ No newline at end of file
Index: main/plugin-odf-sync/stylesheets/rof4/program2content.xsl
===================================================================
--- main/plugin-odf-sync/stylesheets/rof4/program2content.xsl	(revision 0)
+++ main/plugin-odf-sync/stylesheets/rof4/program2content.xsl	(revision 0)
@@ -0,0 +1,501 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2012 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:docbook="http://docbook.org/ns/docbook" 
+	xmlns:cdm="http://cdm-fr.fr/2012/CDM"
+	xmlns:cdmfr="http://cdm-fr.fr/2012/CDM-frSchema"
+	xmlns:odf="org.ametys.odf.OdfXSLTHelper"
+	exclude-result-prefixes="cdm cdmfr">
+	
+	<xsl:import href="../cdm11/program2content.xsl"/>
+	
+	<!-- +
+	     | OVERRIDEN TEMPLATE
+	     + -->
+	     
+	<!-- @Override Program ID-->
+	<xsl:template name="program-CDMid">
+		<xsl:attribute name="CDMid"><xsl:value-of select="cdm:programID"/></xsl:attribute>
+	</xsl:template>
+	
+	<!-- @Override Code-->
+	<xsl:template name="program-code">
+		<xsl:if test="cdm:programID">
+			<code type="string" sync="false"><xsl:value-of select="cdm:programID"/></code>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override CDM code-->
+	<xsl:template name="program-cdmCode">
+		<xsl:if test="@ident">
+			<cdmCode type="string"><xsl:value-of select="@ident"/></cdmCode>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Composante -->
+	<xsl:template name="program-orgUnit">
+        <orgUnit type="orgunit" multiple="true">
+            <xsl:for-each select="cdm:contacts/cdm:refOrgUnit">
+                <item><xsl:value-of select="@ref"/></item>
+            </xsl:for-each>
+        </orgUnit>
+    </xsl:template>
+	
+	
+	<!-- @Override Responsable -->
+	<xsl:template name="program-personInCharge">
+		<xsl:if test="cdm:contacts/cdm:refPerson[@role='responsable']">
+			<personInCharge type="person" multiple="true">
+				<xsl:for-each select="cdm:contacts/cdm:refPerson[@role='responsable']">
+					<item><xsl:value-of select="@ref"/></item>
+				</xsl:for-each>
+			</personInCharge>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Contact -->
+	<xsl:template name="program-contact">
+		<xsl:if test="cdm:contacts/cdm:refPerson[@role='contact']">
+			<contact type="person" multiple="true">
+				<xsl:for-each select="cdm:contacts/cdm:refPerson[@role='contact']">
+					<item><xsl:value-of select="@ref"/></item>
+				</xsl:for-each>
+			</contact>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Nombre d'étudiants -->
+	<xsl:template name="program-numberOfStudents">
+		<xsl:if test="cdm:admissionInfo/cdm:studentPlaces">
+			<numberOfStudents type="string"><xsl:value-of select="cdm:admissionInfo/cdm:studentPlaces/@places"/></numberOfStudents>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Code ROME -->
+	<xsl:template name="program-romeCode">
+		<xsl:if test="cdm:qualification/cdmfr:profession/cdmfr:romeData">
+			<romeCode type="string" multiple="true"><xsl:value-of select="cdm:qualification/cdmfr:profession/cdmfr:romeData"/></romeCode>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Lieux -->
+	<xsl:template name="program-place">
+		<xsl:if test="cdm:teachingPlace/cdm:adr/cdm:pcode">
+			<place type="string" multiple="true">
+				<xsl:for-each select="cdm:teachingPlace[cdm:adr/cdm:pcode]">
+					<item><xsl:value-of select="cdm:teachingPlace/cdm:adr/cdm:pcode"/></item>
+				</xsl:for-each>
+			</place>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Controle des connaissance -->
+	<xsl:template name="program-knowledgeCheck">
+		<knowledgeCheck type="rich-text">
+			<xsl:if test="cdmfr:formOfAssessment/cdm:infoBlock">
+				<xsl:apply-templates select="cdmfr:formOfAssessment/cdm:infoBlock[*]" mode="infoblock"/>
+			</xsl:if>
+		</knowledgeCheck>
+	</xsl:template>
+	
+	<!-- @Override Poursuite d'étude -->
+	<xsl:template name="program-furtherStudy">
+		<furtherStudy type="rich-text">
+			<xsl:if test="cdmfr:aip/cdmfr:possibleFollowUp/*">
+				<xsl:apply-templates select="cdmfr:aip/cdmfr:possibleFollowUp[*]" mode="infoblock"/>
+			</xsl:if>
+		</furtherStudy>
+	</xsl:template>
+	
+	<!-- @Override Savoir-faire et compétences -->
+	<xsl:template name="program-qualification">
+		<qualification type="rich-text">
+			<xsl:if test="cdm:qualification/cdmfr:studyQualification/cdm:infoBlock/*">
+				<xsl:apply-templates select="cdm:qualification/cdmfr:studyQualification/cdm:infoBlock[*]" mode="infoblock"/>
+			</xsl:if>
+		</qualification>
+	</xsl:template>
+	
+	<!-- @Override Program structure -->
+	<xsl:template name="program-structure">
+		<!-- Liste d'UE -->
+		<xsl:if test="cdm:programStructure/cdm:refCourse/@ref">
+			<coursesReferences type="courseList" name="Liste">
+				<xsl:for-each select="cdm:programStructure/cdm:refCourse">
+					<item><xsl:value-of select="@ref"/></item>
+				</xsl:for-each>
+			</coursesReferences>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- @Override Program sub-program -->
+	<xsl:template name="program-subProgram">
+		<!-- Sous-programme ou conteneur -->
+		<xsl:for-each select="cdm:programStructure/cdm:refProgram/@ref">
+			<xsl:variable name="subprogram"><xsl:value-of select="."/></xsl:variable>
+			<xsl:apply-templates select="//cdm:program[cdm:programID = $subprogram]" mode="rof-subprogram"/>
+		</xsl:for-each>
+	</xsl:template>
+	
+	<!-- Conteneurs -->
+	<xsl:template match="cdm:program[cdmfr:programDescription/@nature = 'semestre' or cdmfr:programDescription/@nature = 'année']" mode="rof-subprogram">
+		<container>
+			<xsl:call-template name="program-parse"/>
+		</container>
+	</xsl:template>
+	
+	<!-- Sous-programmes -->
+	<xsl:template match="cdm:program" mode="rof-subprogram">
+		<subProgram>
+			<xsl:attribute name="nature"><xsl:value-of select="cdmfr:programDescription/@nature"/></xsl:attribute>
+			<xsl:call-template name="program-parse"/>
+		</subProgram>
+	</xsl:template>
+	
+	<!-- Listes d'UE -->
+	<xsl:template match="cdm:program[cdm:programStructure/cdm:refCourse/@ref and not(cdm:programStructure/cdm:refProgram/@ref) and not(cdmfr:programDescription/@nature = 'semestre')]" mode="rof-subprogram">
+		<coursesReferences type="courseList" name="{cdmfr:programName/cdmfr:text}" code="{cdmfr:programCode[@codeSet='userDefined']}">
+			<xsl:for-each select="cdm:programStructure/cdm:refCourse">
+				<item><xsl:value-of select="@ref"/></item>
+			</xsl:for-each>
+		</coursesReferences>
+	</xsl:template>
+	
+	<!-- +
+	     | TEMPLATE FOR ROOT PROGRAMS
+	     + -->
+	     
+	<!-- Title -->
+	<xsl:template name="root-program-title">
+		<xsl:if test="cdmfr:programName/cdmfr:text">
+			<xsl:variable name="degree" select="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]/cdm:qualification/cdmfr:degree/@degree"/>
+            <title type="string"><xsl:value-of select="cdmfr:programName/cdmfr:text"/></title>
+			<!-- <title type="string"><xsl:value-of select="odf:degreeLabel($degree)"/><xsl:text> </xsl:text><xsl:value-of select="cdmfr:programName/cdmfr:text"/></title> -->
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- Degree -->
+	<xsl:template name="root-program-degree">
+		<xsl:if test="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]/cdm:qualification/cdmfr:degree/@degree">
+			<degree type="string" constant="DEGREE"><xsl:value-of select="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]/cdm:qualification/cdmfr:degree/@degree"/></degree>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- Domaine -->
+	<xsl:template name="root-program-domain">
+		<xsl:if test="/cdm:CDM/cdmfr:habilitation/cdmfr:domainName/cdmfr:fixedDomain|/cdm:CDM/cdmfr:habilitation/cdmfr:domainName/cdmfr:openDomain">
+			<domain type="string" constant="DOMAIN"><xsl:value-of select="/cdm:CDM/cdmfr:habilitation/cdmfr:domainName/cdmfr:fixedDomain|/cdm:CDM/cdmfr:habilitation/cdmfr:domainName/cdmfr:openDomain"/></domain>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- Mention -->
+	<xsl:template name="root-program-mention">
+		<xsl:if test="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]/cdmfr:programName/cdmfr:text">
+			<xsl:variable name="mention" select="substring-after(/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]/cdmfr:programName/cdmfr:text, 'MENTION : ')"/>
+			<xsl:variable name="end"><xsl:text> </xsl:text>sous réserve d'habilitation</xsl:variable>
+			<xsl:choose>
+				<xsl:when test="contains($mention, $end)"><mention type="string"><xsl:value-of select="substring-before($mention, $end)"/></mention></xsl:when>
+				<xsl:otherwise><mention type="string"><xsl:value-of select="$mention"/></mention></xsl:otherwise>
+			</xsl:choose>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- Composantes -->
+	<xsl:template name="root-program-orgUnit">
+		<orgUnit type="orgunit" multiple="true">
+			<xsl:for-each select="cdm:contacts">
+                 <xsl:for-each select="cdmfr:refOrgResp">
+                     <xsl:variable name="respRole">
+                        <xsl:value-of select="cdmfr:respRole"/>
+                     </xsl:variable>
+                     <xsl:if test="$respRole = 'composante de responsabilité pédagogique'">
+                        <item><xsl:value-of select="cdmfr:refOrgUnit/@ref"/></item>
+                     </xsl:if>
+                 </xsl:for-each>
+            </xsl:for-each>
+		</orgUnit>
+	</xsl:template>
+	
+	<!-- Crédits ECTS -->
+	<xsl:template name="root-program-ects">
+		<xsl:if test="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]/cdm:qualification/cdmfr:credits/@ECTScredits">
+			<ects type="string"><xsl:value-of select="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]/cdm:qualification/cdmfr:credits/@ECTScredits"/></ects>
+		</xsl:if>
+	</xsl:template>
+	
+	<!-- Présentation -->
+	<xsl:template name="root-program-presentation">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<presentation type="rich-text">
+			<xsl:if test="cdmfr:programDescription/cdm:infoBlock/* or $ME/cdmfr:programDescription/cdm:infoBlock/* or $SP/cdmfr:programDescription/cdm:infoBlock/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdmfr:programDescription/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdmfr:programDescription/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdmfr:programDescription/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</presentation>
+	</xsl:template>
+	
+	<!-- Objectifs -->
+	<xsl:template name="root-program-objectives">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<objectives type="rich-text">
+			<xsl:if test="$ME/cdm:learningObjectives/* or $SP/cdm:learningObjectives/* or cdm:learningObjectives/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:learningObjectives[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:learningObjectives[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:learningObjectives[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</objectives>
+	</xsl:template>
+	
+	<!-- Connaissances -->
+	<xsl:template name="root-program-qualification">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<qualification type="rich-text">
+			<xsl:if test="$ME/cdm:qualification/cdmfr:studyQualification/cdm:infoBlock/* or $SP/cdm:qualification/cdmfr:studyQualification/cdm:infoBlock/* or cdm:qualification/cdmfr:studyQualification/cdm:infoBlock/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:qualification/cdmfr:studyQualification/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:qualification/cdmfr:studyQualification/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:qualification/cdmfr:studyQualification/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</qualification>
+	</xsl:template>
+	
+	<!-- Controle des connaissances -->
+	<xsl:template name="root-program-knowledgeCheck">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<knowledgeCheck type="rich-text">
+			<xsl:if test="$ME/cdmfr:formOfAssessment/cdm:infoBlock/* or $SP/cdmfr:formOfAssessment/cdm:infoBlock/* or cdmfr:formOfAssessment/cdm:infoBlock/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdmfr:formOfAssessment/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdmfr:formOfAssessment/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdmfr:formOfAssessment/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</knowledgeCheck>
+	</xsl:template>
+	
+	<!-- Organisation des études -->
+	<xsl:template name="root-program-teachingOrganization">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<teachingOrganization type="rich-text">
+			<xsl:if test="$ME/cdm:programStructure/cdm:infoBlock/* or $SP/cdm:programStructure/cdm:infoBlock/* or cdm:programStructure/cdm:infoBlock/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:programStructure/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:programStructure/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:programStructure/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</teachingOrganization>
+	</xsl:template>
+	
+	<!-- Condition d'accès -->
+	<xsl:template name="root-program-accessCondition">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<accessCondition type="rich-text">
+			<xsl:if test="$ME/cdm:admissionInfo/cdmfr:admissionDescription/* or $SP/cdm:admissionInfo/cdmfr:admissionDescription/* or cdm:admissionInfo/cdmfr:admissionDescription/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:admissionInfo/cdmfr:admissionDescription[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:admissionInfo/cdmfr:admissionDescription[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:admissionInfo/cdmfr:admissionDescription[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</accessCondition>
+	</xsl:template>
+	
+	<!-- Pré-requis -->
+	<xsl:template name="root-program-neededPrerequisite">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<neededPrerequisite type="rich-text">
+			<xsl:if test="$ME/cdm:formalPrerequisites/* or $SP/cdm:formalPrerequisites/* or cdm:formalPrerequisites/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:formalPrerequisites[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:formalPrerequisites[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:formalPrerequisites[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</neededPrerequisite>
+	</xsl:template>
+	
+	<!-- Pré-requis recommandés -->
+	<xsl:template name="root-program-recommendedPrerequisite">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<recommendedPrerequisite type="rich-text">
+			<xsl:if test="$ME/cdm:recommendedPrerequisites/* or $SP/cdm:recommendedPrerequisites/* or cdm:recommendedPrerequisites/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:recommendedPrerequisites[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:recommendedPrerequisites[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:recommendedPrerequisites[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</recommendedPrerequisite>
+	</xsl:template>
+	
+	<!-- Poursuite d'étude -->
+	<xsl:template name="root-program-furtherStudy">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR -->
+		<furtherStudy type="rich-text">
+			<xsl:if test="$ME/cdmfr:aip/cdmfr:possibleFollowUp/* or $SP/cdmfr:aip/cdmfr:possibleFollowUp/* or cdmfr:aip/cdmfr:possibleFollowUp/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdmfr:aip/cdmfr:possibleFollowUp[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdmfr:aip/cdmfr:possibleFollowUp[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdmfr:aip/cdmfr:possibleFollowUp[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</furtherStudy>
+	</xsl:template>
+	
+	<!-- Etude à l'étranger -->
+	<xsl:template name="root-program-studyAbroad">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<studyAbroad type="rich-text">
+			<xsl:if test="$ME/cdm:studyAbroad/* or $SP/cdm:studyAbroad/* or cdm:studyAbroad/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:studyAbroad[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:studyAbroad[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:studyAbroad[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</studyAbroad>
+	</xsl:template>
+	
+	<!-- Public cible -->
+	<xsl:template name="root-program-targetGroup">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<targetGroup type="rich-text">
+			<xsl:if test="$ME/cdm:targetGroup/* or $SP/cdm:targetGroup/* or cdm:targetGroup/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:targetGroup[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:targetGroup[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:targetGroup[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</targetGroup>
+	</xsl:template>
+	
+	<!-- Métiers -->
+	<xsl:template name="root-program-jobOpportunities">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<jobOpportunities type="rich-text">
+			<xsl:if test="$ME/cdm:qualification/cdmfr:profession/cdm:infoBlock/* or $SP/cdm:qualification/cdmfr:profession/cdm:infoBlock/* or cdm:qualification/cdmfr:profession/cdm:infoBlock/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:qualification/cdmfr:profession/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:qualification/cdmfr:profession/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:qualification/cdmfr:profession/cdm:infoBlock[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</jobOpportunities>
+	</xsl:template>
+	
+	<!-- Aménagements -->
+	<xsl:template name="root-program-universalAdjustment">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<universalAdjustment type="rich-text">
+			<xsl:if test="$ME/cdm:universalAjustment/* or $SP/cdm:universalAjustment/* or cdm:universalAjustment/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:universalAjustment[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:universalAjustment[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:universalAjustment[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</universalAdjustment>
+	</xsl:template>
+	
+	<!-- Informations complémentaires -->
+	<xsl:template name="root-program-additionalInformations">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<additionalInformations type="rich-text">
+			<xsl:if test="$ME/cdm:infoBlock[not(@userDefined = 'ametys-extension')]/* or $SP/cdm:infoBlock[not(@userDefined = 'ametys-extension')]/* or cdm:infoBlock[not(@userDefined = 'ametys-extension')]/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:infoBlock[not(@userDefined = 'ametys-extension')][*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:infoBlock[not(@userDefined = 'ametys-extension')][*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:infoBlock[not(@userDefined = 'ametys-extension')][*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>
+		</additionalInformations>
+	</xsl:template>
+	
+	<!-- Passerelle et ré-orientation -->
+	<xsl:template name="root-program-reorientation">
+	</xsl:template>
+	
+	<!-- Couts -->
+	<xsl:template name="root-program-expenses">
+		<xsl:param name="ME"/>
+		<xsl:param name="SP"/>
+		
+		<!-- Concaténation de la mention ME (si présente), de la spécialité SP (si présente) et du programme PR-->
+		<expenses type="rich-text">
+			<xsl:if test="$ME/cdm:expenses/* or $SP/cdm:expenses/* or cdm:expenses/*">
+				<article version="5" xmlns="http://docbook.org/ns/docbook">
+					<xsl:apply-templates select="$ME/cdm:expenses[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="$SP/cdm:expenses[*]" mode="infoblock-without-article"/>
+					<xsl:apply-templates select="cdm:expenses[*]" mode="infoblock-without-article"/>
+				</article>
+			</xsl:if>			
+		</expenses>
+	</xsl:template>
+	
+	
+</xsl:stylesheet>
\ No newline at end of file
Index: main/plugin-odf-sync/stylesheets/rof4/rof2content.xsl
===================================================================
--- main/plugin-odf-sync/stylesheets/rof4/rof2content.xsl	(revision 0)
+++ main/plugin-odf-sync/stylesheets/rof4/rof2content.xsl	(revision 0)
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Copyright 2012 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   -->
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:cdm="http://cdm-fr.fr/2012/CDM"
+	xmlns:cdmfr="http://cdm-fr.fr/2012/CDM-frSchema"
+	xmlns:exsl="http://exslt.org/common"
+	exclude-result-prefixes="cdm cdmfr">
+	
+	<xsl:import href="../cdm11/cdmfr2content.xsl"/>
+	
+	<xsl:include href="person2content.xsl"/>
+	<xsl:include href="orgunit2content.xsl"/>
+	<xsl:include href="course2content.xsl"/>
+	<xsl:include href="program2content.xsl"/>
+	
+	<!-- @Override Program : Find the mention ME (= program referenced in habilitation) -->
+	<xsl:template match="cdm:program">
+		<xsl:if test="@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId">
+			
+			<xsl:variable name="firstProgramRef" select="cdm:programStructure/cdm:refProgram/@ref"/>
+			
+			<xsl:choose>
+				<xsl:when test="starts-with(/cdm:CDM/cdm:program[cdm:programID = $firstProgramRef]/@ident, 'PR') and count(cdm:programStructure/cdm:refProgram) &gt; 1">
+					<!-- Import of mention ME as the root program. The referenced programs PR are sub-programs -->
+					<xsl:apply-templates select="." mode="root-program"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<!-- Iteration of referenced programs -->
+					<xsl:for-each select="cdm:programStructure/cdm:refProgram">
+						<xsl:variable name="programRef" select="@ref"/>
+						<xsl:variable name="ident" select="/cdm:CDM/cdm:program[cdm:programID = $programRef]/@ident"/>
+
+						<xsl:choose>
+							<xsl:when test="starts-with($ident, 'SP')">
+								<!-- Referenced program is a speciality SP -->
+								<xsl:choose>
+									<xsl:when test="count(/cdm:CDM/cdm:program[cdm:programID = $programRef]/cdm:programStructure/cdm:refProgram) &gt; 1">
+										<!-- The speciality has several programs PR => Import the speciality as root program. The referenced programs PR are sub-programs of the speciality -->
+										<xsl:apply-templates select="/cdm:CDM/cdm:program[cdm:programID = $programRef]" mode="root-program">
+											<xsl:with-param name="ME" select="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]"/>
+										</xsl:apply-templates>
+									</xsl:when>
+									<xsl:otherwise>
+										<!-- The speciality has only one PR program => Import the PR program as root program -->
+										 <xsl:variable name="spProgramRef" select="/cdm:CDM/cdm:program[cdm:programID = $programRef]/cdm:programStructure/cdm:refProgram/@ref"/>
+										 <xsl:apply-templates select="/cdm:CDM/cdm:program[cdm:programID = $spProgramRef]" mode="root-program">
+										 	<xsl:with-param name="ME" select="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]"></xsl:with-param>
+										 	<xsl:with-param name="SP" select="/cdm:CDM/cdm:program[cdm:programID = $programRef]"></xsl:with-param>
+										 </xsl:apply-templates>
+									</xsl:otherwise>
+								</xsl:choose>
+							</xsl:when>
+							<xsl:when test="starts-with($ident, 'PR')">
+								<!-- Import all PR programs as root programs. There is no speciality -->
+								<xsl:apply-templates select="/cdm:CDM/cdm:program[cdm:programID = $programRef]" mode="root-program">
+									<xsl:with-param name="ME" select="/cdm:CDM/cdm:program[@ident = /cdm:CDM/cdmfr:habilitation/cdmfr:habiliId]"/>
+								</xsl:apply-templates>
+							</xsl:when>
+						</xsl:choose>
+					</xsl:for-each>
+				</xsl:otherwise>
+			</xsl:choose>
+		</xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="cdm:program" mode="root-program">
+		<xsl:param name="ME"/> <!-- Vide si la mention ME est le programe -->
+		<xsl:param name="SP"/> <!-- Vide si la spécialité SP est le programe -->
+		
+		<xsl:variable name="ME-node" select="exsl:node-set($ME)"/>
+		<xsl:variable name="SP-node" select="exsl:node-set($SP)"/>
+		<program>
+			<xsl:call-template name="program-CDMid"/>
+			<xsl:call-template name="root-program-title"/>
+			<xsl:call-template name="root-program-presentation">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-objectives">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-qualification">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-teachingOrganization">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-accessCondition">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-neededPrerequisite">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-recommendedPrerequisite">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-furtherStudy">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-studyAbroad">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-targetGroup">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-jobOpportunities">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="program-trainingStrategy">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-knowledgeCheck">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-universalAdjustment">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-additionalInformations">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-reorientation">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-expenses">
+				<xsl:with-param name="ME" select="$ME-node"/>
+				<xsl:with-param name="SP" select="$SP-node"/>
+			</xsl:call-template>
+			<xsl:call-template name="root-program-domain"/>
+			<xsl:call-template name="program-rncpCode"/>
+			<xsl:call-template name="program-siseCode"/>
+			<xsl:call-template name="program-cite97Code"/>
+			<xsl:call-template name="program-erasmusCode"/>
+			<xsl:call-template name="program-romeCode"/>
+			<xsl:call-template name="program-dgesipCode"/>
+			<xsl:call-template name="program-code"/>
+			<xsl:call-template name="program-cdmCode"/>
+			<xsl:call-template name="root-program-mention"/>
+			<xsl:call-template name="program-speciality"/>
+			<xsl:call-template name="program-educationLevel"/>
+			<xsl:call-template name="root-program-degree"/>
+			<xsl:call-template name="program-jointOrgUnit"/>
+			<xsl:call-template name="root-program-orgUnit"/>
+			<xsl:call-template name="program-place"/>
+			<xsl:call-template name="program-personInCharge"/>
+			<xsl:call-template name="program-contact"/>
+			<xsl:call-template name="program-programWebSiteUrl"/>
+			<xsl:call-template name="program-programWebSiteLabel"/>
+			<xsl:call-template name="program-successRate"/>
+			<xsl:call-template name="root-program-ects"/>
+			<xsl:call-template name="program-educationKind"/>
+			<xsl:call-template name="program-duration"/>
+			<xsl:call-template name="program-educationLanguage"/>
+			<xsl:call-template name="program-numberOfStudents"/>
+            <xsl:call-template name="program-formofteachingOrg"/>
+			<xsl:call-template name="program-distanceLearning"/>
+			<xsl:call-template name="program-keywords"/>
+			<xsl:call-template name="program-structure"/>
+			<xsl:call-template name="program-subProgram"/>
+            <xsl:call-template name="program-registration"/>
+            <xsl:call-template name="program-teachingStart"/>
+		</program>
+	</xsl:template>
+	
+</xsl:stylesheet>
Index: main/plugin-odf-sync/plugin.xml
===================================================================
--- main/plugin-odf-sync/plugin.xml	(revision 30411)
+++ main/plugin-odf-sync/plugin.xml	(working copy)
@@ -429,6 +429,26 @@
            </extension>
         </extensions>
     </feature>
+    
+    <!-- +
+         | ROF 4.0
+         + -->
+    <feature name="synchronization.rof23">
+        <extensions>
+            <extension point="org.ametys.plugins.odfsync.cdmfr.CDMFrSyncExtensionPoint"
+                       id="org.ametys.plugins.odfsync.cdmfr.ROF23ODFSyncManager"
+                       class="org.ametys.plugins.odfsync.cdmfr.transformers.DefaultCDMFrSyncTransformer">
+                <app>^ROF 4.*$</app>
+                <configuration>
+                    <xsl-transform>plugin:odf-sync://stylesheets/rof4/rof2content.xsl</xsl-transform>   
+                </configuration>
+                <namespaces>
+                    <namespace prefix="cdm" value="http://cdm-fr.fr/2012/CDM"/>
+                    <namespace prefix="cdmfr" value="http://cdm-fr.fr/2012/CDM-frSchema"/>
+                </namespaces>
+           </extension>
+        </extensions>
+    </feature>
 	
 	<!-- +
 		 | WIDGETS
