diff --git a/.gitignore b/.gitignore
index 73b99a1e4..4c608e1c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,11 +37,16 @@ src/main/resources/xslt/inputs/*/templates.xsl
src/main/resources/xslt/inputs/*/functions.xsl
src/main/resources/xslt/transformations/*/*.xsl
src/main/resources/xml/null.xml
-
+
+# Ignore temp and debug files
+*-temp.*
+*-debug.*
+
# Don't ignore not generated files looking like generated ones
!src/main/resources/xslt/inputs/fods/source.xsl
!src/main/resources/xslt/inputs/xml/source.xsl
!src/main/resources/xslt/transformations/*/*-fixed.xsl
#Oxygen project
-enojs.xpr
\ No newline at end of file
+Eno.xpr
+questionnaires/test/
diff --git a/.travis.yml b/.travis.yml
index ed04b39c8..6843b21eb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
language: java
jdk:
-- openjdk8
+ - openjdk8
install:
-- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
-- mvn test -B
+ - mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
+ - mvn test -B
diff --git a/Eno.xpr b/Eno.xpr
deleted file mode 100644
index 1532e02ab..000000000
--- a/Eno.xpr
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
- enable.project.master.files.support
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/ddi-qg-guide.html b/docs/ddi-qg-guide.html
index 023951f1e..001382568 100644
--- a/docs/ddi-qg-guide.html
+++ b/docs/ddi-qg-guide.html
@@ -447,7 +447,7 @@
DDI Modelling
-
Case 2: Drop-down box
diff --git a/pom.xml b/pom.xml
index cf1ad16e7..a7e7a2b20 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,9 +1,10 @@
-
4.0.0
fr.insee.eno
eno-core
- 1.1.0
+ 2.0.0
jar
Eno – Questionnaire generator
@@ -50,6 +51,14 @@
2.5
9.7.0-8
2.2
+ 2.7.1
+ 1.7.25
+
+ 3.5
+ 4.12
+ 2.3.0
+ 2.11.0
+
3.0.1
3.0.0
UTF-8
@@ -67,7 +76,7 @@
xalan
xalan
- 2.7.1
+ ${xalan.version}
com.google.inject
@@ -87,41 +96,55 @@
${fop.version}
-
+
org.slf4j
slf4j-api
- 1.7.25
+ ${slf4j.version}
+
+
+
+
+ org.eclipse.persistence
+ org.eclipse.persistence.moxy
+ 2.6.0
+
+
+ org.eclipse.persistence
+ eclipselink
+ 2.6.0
+
+
+ javax.xml.bind
+ jaxb-api
+ 2.3.1
org.apache.commons
commons-lang3
- 3.5
+ ${apache-commons.version}
test
junit
junit
- 4.12
+ ${junit.version}
test
org.xmlunit
xmlunit-matchers
- 2.3.0
+ ${xmlunit.version}
test
org.apache.logging.log4j
log4j-slf4j-impl
- 2.11.0
+ ${log4j-slf4j.version}
test
-
-
-
@@ -135,6 +158,91 @@
${compiler.target}
+
+ org.codehaus.mojo
+ jaxb2-maven-plugin
+ 2.5.0
+
+
+ xjc-schema
+ generate-sources
+
+ xjc
+
+
+ fr.insee.eno.parameters
+ UTF-8
+
+ src/main/resources/params/schemas/jaxb/bindings.xjb
+
+
+
+
+ false
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.22.0
+
+ UTF-8
+ UTF-8
+ UTF-8
+ -Dfile.encoding=UTF-8
+ -Djavax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
+
+
+
+ maven-resources-plugin
+ 2.7
+
+ UTF-8
+
+
+
+ copy-resources
+ process-resources
+
+ copy-resources
+
+
+ target/generated-sources/jaxb/fr/insee/eno/parameters
+
+
+ src/main/resources/params/schemas/jaxb
+
+ bindings.xml
+ jaxb.properties
+
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 1.7
+
+
+ add-source
+ generate-sources
+
+ add-source
+
+
+
+
+
+
+
+
+
org.codehaus.mojo
exec-maven-plugin
@@ -234,6 +342,9 @@
Benoit Werquin
+
+ Laurent Caouissin
+
diff --git a/questionnaires/simpsons/ddi/simpsons.xml b/questionnaires/simpsons/ddi/simpsons.xml
index 383252d9c..fb76627a4 100644
--- a/questionnaires/simpsons/ddi/simpsons.xml
+++ b/questionnaires/simpsons/ddi/simpsons.xml
@@ -1,10 +1,7 @@
-
+
fr.insee
- INSEE-i6vwid
- 0.1.0
+ INSEE-i6vwi0
+ 1
Questionnaire SIMPSONS
@@ -12,46 +9,46 @@
fr.insee
- RessourcePackage-i6vwid
- 0.1.0
+ RessourcePackage-i6vwi0
+ 1
fr.insee
- InterviewerInstructionScheme-i6vwid
- 0.1.0
+ InterviewerInstructionScheme-i6vwi0
+ 1
A définir
fr.insee
d1
- 0.1.0
+ 1
comment
- We're going to test your knowledge about the simpsons series.Welcome in the simspons world!
+ We're going to test your knowledge about the simpsons series.Welcome in the simspons world!
fr.insee
d11
- 0.1.0
+ 1
comment
For your information, the date of the last broadcast was on
- øLAST_BROADCASTø
+ ¤LAST_BROADCAST¤
fr.insee
d2
- 0.1.0
+ 1
comment
@@ -64,7 +61,7 @@
fr.insee
d3
- 0.1.0
+ 1
instruction
@@ -77,7 +74,7 @@
fr.insee
d4
- 0.1.0
+ 1
instruction
@@ -90,33 +87,33 @@
fr.insee
d5
- 0.1.0
+ 1
instruction
- Several possible answers
+ Several possible answers
fr.insee
j4nwc63q-CI-0-II-0
- 0.1.0
+ 1
warning
The sum of percentages is: ¤jbcggtca-GOP¤ %. The total of
- percentages must be equal to 100%.
+ percentages must be equal to 100%.
fr.insee
jbcggtca-GOP
- 0.1.0
+ 1
OutParameter
@@ -125,52 +122,52 @@
fr.insee
d10
- 0.1.0
+ 1
instruction
- Several answers possible: check off all the relevant boxes
+ Several answers possible: check off all the relevant boxes
- fr.inseeFTN-INSTRUCTION-10.1.0tooltipIncluded principalities
+ fr.inseeFTN-INSTRUCTION-11tooltipIncluded principalities
fr.insee
- ControlConstructScheme-i6vwid
- 0.1.0
+ ControlConstructScheme-i6vwi0
+ 1
fr.insee
- Sequence-i6vwid
- 0.1.0
+ Sequence-i6vwi0
+ 1
Questionnaire SIMPSONS
- template
+ template
fr.insee
j6p0ti5h
- 0.1.0
+ 1
Sequence
fr.insee
- d1e101
- 0.1.0
+ d1e119
+ 1
IfThenElse
fr.insee
j6z12s2d
- 0.1.0
+ 1
Sequence
fr.insee
j6p0ti5h
- 0.1.0
+ 1
MODULE1
@@ -180,69 +177,69 @@
fr.insee
d1
- 0.1.0
+ 1
Instruction
- module
+ module
fr.insee
j6p3dkx6-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6p0np9q-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
- d1e42
- 0.1.0
+ d1e50
+ 1
IfThenElse
fr.insee
j6p0s7o5
- 0.1.0
+ 1
MODULE11
General knowledge of the series
- submodule
+ submodule
fr.insee
j3343qhx-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6q9h8tj-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j334cyqb-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6z06z1e-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j3341528
- 0.1.0
+ 1
MODULE2
@@ -252,208 +249,215 @@
fr.insee
d2
- 0.1.0
+ 1
Instruction
- module
+ module
fr.insee
j3343clt-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6qdfhvw-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j4nw5cqz-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6qe0h9q
- 0.1.0
+ 1
MODULE3
Characters
- module
+ module
fr.insee
j334akov-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
d12-SI
- 0.1.0
+ 1
StatementItem
fr.insee
j6p29i81-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6qefnga-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6yzoc6g-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j4nw88h2
- 0.1.0
+ 1
MODULE4
General questions
- module
+ module
fr.insee
j6qe237q
- 0.1.0
+ 1
Sequence
fr.insee
j6qejudb
- 0.1.0
+ 1
Sequence
fr.insee
j6qeh91y
- 0.1.0
+ 1
Sequence
fr.insee
j6qe237q
- 0.1.0
+ 1
MODULE41
Kwik-E-Mart
- submodule
+ submodule
fr.insee
j4nwc63q-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j4nwc63q-CI-0
- 0.1.0
+ 1
ComputationItem
fr.insee
j6qejudb
- 0.1.0
+ 1
MODULE42
Clowning
- submodule
+ submodule
fr.insee
j4nw0rr6-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6qeh91y
- 0.1.0
+ 1
MODULE43
Transport
- submodule
+ submodule
fr.insee
j6p2lwuj-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6qfx9qe
- 0.1.0
+ 1
MODULE5
Favourite characters
- module
+ module
fr.insee
j6qg8rc6-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
j6z12s2d
- 0.1.0
+ 1
MODULE6
Comment
- module
+ module
fr.insee
j6z0z3us-QC
- 0.1.0
+ 1
QuestionConstruct
fr.insee
- d1e42
- 0.1.0
+ d1e50
+ 1
+
+ A définir
+
+
+
+
+ hideable
xpath
fr.insee
- d1e42-IP-1
- 0.1.0
+ d1e50-IP-1
+ 1
READY
@@ -462,52 +466,58 @@
fr.insee
j6p0np9q-QOP-jbgd3set
- 0.1.0
+ 1
OutParameter
fr.insee
- d1e42-IP-1
- 0.1.0
+ d1e50-IP-1
+ 1
InParameter
- not( d1e42-IP-1 != '1')
+ not( d1e50-IP-1!= '1')
fr.insee
- d1e42-THEN
- 0.1.0
+ d1e50-THEN
+ 1
Sequence
fr.insee
- d1e42-THEN
- 0.1.0
+ d1e50-THEN
+ 1
- hideable
fr.insee
j6p0s7o5
- 0.1.0
+ 1
Sequence
fr.insee
- d1e101
- 0.1.0
+ d1e119
+ 1
+
+ A définir
+
+
+
+
+ hideable
xpath
fr.insee
- d1e101-IP-1
- 0.1.0
+ d1e119-IP-1
+ 1
READY
@@ -516,315 +526,314 @@
fr.insee
j6p0np9q-QOP-jbgd3set
- 0.1.0
+ 1
OutParameter
fr.insee
- d1e101-IP-1
- 0.1.0
+ d1e119-IP-1
+ 1
InParameter
- not( d1e101-IP-1 != '1')
+ not( d1e119-IP-1!= '1')
fr.insee
- d1e101-THEN
- 0.1.0
+ d1e119-THEN
+ 1
Sequence
fr.insee
- d1e101-THEN
- 0.1.0
+ d1e119-THEN
+ 1
- hideable
fr.insee
j3341528
- 0.1.0
+ 1
Sequence
fr.insee
j6qe0h9q
- 0.1.0
+ 1
Sequence
fr.insee
j4nw88h2
- 0.1.0
+ 1
Sequence
fr.insee
j6qfx9qe
- 0.1.0
+ 1
Sequence
fr.insee
j6p3dkx6-QC
- 0.1.0
+ 1
COMMENT
fr.insee
j6p3dkx6
- 0.1.0
+ 1
QuestionItem
fr.insee
j6p0np9q-QC
- 0.1.0
+ 1
READY
fr.insee
j6p0np9q
- 0.1.0
+ 1
QuestionItem
fr.insee
j3343qhx-QC
- 0.1.0
+ 1
PRODUCER
fr.insee
j3343qhx
- 0.1.0
+ 1
QuestionItem
fr.insee
j6q9h8tj-QC
- 0.1.0
+ 1
SEASON_NUMBER
fr.insee
j6q9h8tj
- 0.1.0
+ 1
QuestionItem
fr.insee
j334cyqb-QC
- 0.1.0
+ 1
DATEFIRST
fr.insee
j334cyqb
- 0.1.0
+ 1
QuestionItem
fr.insee
j6z06z1e-QC
- 0.1.0
+ 1
AUDIENCE_SHARE
fr.insee
j6z06z1e
- 0.1.0
+ 1
QuestionItem
fr.insee
j3343clt-QC
- 0.1.0
+ 1
CITY
fr.insee
j3343clt
- 0.1.0
+ 1
QuestionItem
fr.insee
j6qdfhvw-QC
- 0.1.0
+ 1
MAYOR
fr.insee
j6qdfhvw
- 0.1.0
+ 1
QuestionItem
fr.insee
j4nw5cqz-QC
- 0.1.0
+ 1
STATE
fr.insee
j4nw5cqz
- 0.1.0
+ 1
QuestionItem
fr.insee
j334akov-QC
- 0.1.0
+ 1
PET
fr.insee
j334akov
- 0.1.0
+ 1
QuestionGrid
fr.insee
j6p29i81-QC
- 0.1.0
+ 1
ICE_FLAVOUR
fr.insee
j6p29i81
- 0.1.0
+ 1
QuestionGrid
fr.insee
j6qefnga-QC
- 0.1.0
+ 1
NUCLEAR_CHARACTER
fr.insee
j6qefnga
- 0.1.0
+ 1
QuestionGrid
fr.insee
j6yzoc6g-QC
- 0.1.0
+ 1
BIRTH_CHARACTER
fr.insee
j6yzoc6g
- 0.1.0
+ 1
QuestionGrid
fr.insee
j4nwc63q-QC
- 0.1.0
+ 1
PERCENTAGE_EXPENSES
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
fr.insee
j4nw0rr6-QC
- 0.1.0
+ 1
CLOWNING
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
fr.insee
j6p2lwuj-QC
- 0.1.0
+ 1
TRAVEL
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
fr.insee
j6qg8rc6-QC
- 0.1.0
+ 1
FAVOURITE_CHARACTERS
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
fr.insee
j6z0z3us-QC
- 0.1.0
+ 1
SURVEY_COMMENT
fr.insee
j6z0z3us
- 0.1.0
+ 1
QuestionItem
fr.insee
j4nwc63q-CI-0
- 0.1.0
+ 1
Total of percentages
@@ -834,16 +843,17 @@
fr.insee
j4nwc63q-CI-0-II-0
- 0.1.0
+ 1
Instruction
+ stumblingblock
xpath
fr.insee
j4nwc63q-CI-0-IP-1
- 0.1.0
+ 1
PERCENTAGE_EXPENSES11
@@ -851,7 +861,7 @@
fr.insee
j4nwc63q-CI-0-IP-2
- 0.1.0
+ 1
PERCENTAGE_EXPENSES21
@@ -859,7 +869,7 @@
fr.insee
j4nwc63q-CI-0-IP-3
- 0.1.0
+ 1
PERCENTAGE_EXPENSES31
@@ -867,7 +877,7 @@
fr.insee
j4nwc63q-CI-0-IP-4
- 0.1.0
+ 1
PERCENTAGE_EXPENSES41
@@ -875,7 +885,7 @@
fr.insee
j4nwc63q-CI-0-IP-5
- 0.1.0
+ 1
PERCENTAGE_EXPENSES51
@@ -883,7 +893,7 @@
fr.insee
j4nwc63q-CI-0-IP-6
- 0.1.0
+ 1
PERCENTAGE_EXPENSES61
@@ -891,7 +901,7 @@
fr.insee
j4nwc63q-CI-0-IP-7
- 0.1.0
+ 1
PERCENTAGE_EXPENSES71
@@ -899,7 +909,7 @@
fr.insee
j4nwc63q-CI-0-IP-8
- 0.1.0
+ 1
PERCENTAGE_EXPENSES81
@@ -907,7 +917,7 @@
fr.insee
j4nwc63q-CI-0-IP-9
- 0.1.0
+ 1
PERCENTAGE_EXPENSES91
@@ -915,7 +925,7 @@
fr.insee
j4nwc63q-CI-0-IP-10
- 0.1.0
+ 1
PERCENTAGE_EXPENSES101
@@ -924,13 +934,13 @@
fr.insee
j4nwc63q-QOP-jbgde5yl
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-1
- 0.1.0
+ 1
InParameter
@@ -938,13 +948,13 @@
fr.insee
j4nwc63q-QOP-jbgd2x2t
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-2
- 0.1.0
+ 1
InParameter
@@ -952,13 +962,13 @@
fr.insee
j4nwc63q-QOP-jbgdjypz
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-3
- 0.1.0
+ 1
InParameter
@@ -966,13 +976,13 @@
fr.insee
j4nwc63q-QOP-jbgdcftu
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-4
- 0.1.0
+ 1
InParameter
@@ -980,13 +990,13 @@
fr.insee
j4nwc63q-QOP-jbgdiyfe
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-5
- 0.1.0
+ 1
InParameter
@@ -994,13 +1004,13 @@
fr.insee
j4nwc63q-QOP-jbgdj1wd
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-6
- 0.1.0
+ 1
InParameter
@@ -1008,13 +1018,13 @@
fr.insee
j4nwc63q-QOP-jbgddylk
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-7
- 0.1.0
+ 1
InParameter
@@ -1022,13 +1032,13 @@
fr.insee
j4nwc63q-QOP-jbgd3jj6
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-8
- 0.1.0
+ 1
InParameter
@@ -1036,13 +1046,13 @@
fr.insee
j4nwc63q-QOP-jbgd4w3k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-9
- 0.1.0
+ 1
InParameter
@@ -1050,27 +1060,27 @@
fr.insee
j4nwc63q-QOP-jbgd4w4k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-CI-0-IP-10
- 0.1.0
+ 1
InParameter
number(if (j4nwc63q-CI-0-IP-1='') then '0' else j4nwc63q-CI-0-IP-1) + number(if (j4nwc63q-CI-0-IP-2='') then '0' else j4nwc63q-CI-0-IP-2) +
- number(if (j4nwc63q-CI-0-IP-3='') then '0' else j4nwc63q-CI-0-IP-3) + number(if (j4nwc63q-CI-0-IP-4='') then '0' else j4nwc63q-CI-0-IP-4) + number(if (j4nwc63q-CI-0-IP-5='') then '0' else j4nwc63q-CI-0-IP-5) +
- number(if (j4nwc63q-CI-0-IP-6='') then '0' else j4nwc63q-CI-0-IP-6) + number(if (j4nwc63q-CI-0-IP-7='') then '0' else j4nwc63q-CI-0-IP-7) + number(if (j4nwc63q-CI-0-IP-8='') then '0' else j4nwc63q-CI-0-IP-8) +
- number(if (j4nwc63q-CI-0-IP-9='') then '0' else j4nwc63q-CI-0-IP-9) + number(if (j4nwc63q-CI-0-IP-10='') then '0' else j4nwc63q-CI-0-IP-10) != 100
+ number(if (j4nwc63q-CI-0-IP-3='') then '0' else j4nwc63q-CI-0-IP-3)+ number(if (j4nwc63q-CI-0-IP-4='') then '0' else j4nwc63q-CI-0-IP-4)+ number(if (j4nwc63q-CI-0-IP-5='') then '0' else j4nwc63q-CI-0-IP-5)+
+ number(if (j4nwc63q-CI-0-IP-6='') then '0' else j4nwc63q-CI-0-IP-6)+ number(if (j4nwc63q-CI-0-IP-7='') then '0' else j4nwc63q-CI-0-IP-7)+ number(if (j4nwc63q-CI-0-IP-8='') then '0' else j4nwc63q-CI-0-IP-8)+
+ number(if (j4nwc63q-CI-0-IP-9='') then '0' else j4nwc63q-CI-0-IP-9)+ number(if (j4nwc63q-CI-0-IP-10='') then '0' else j4nwc63q-CI-0-IP-10)!= 100
-
+
fr.insee
d12-SI
- 0.1.0
+ 1
Now we are going to know if you think that Jay is a gluton.
@@ -1080,22 +1090,22 @@
fr.insee
- QuestionScheme-i6vwid
- 0.1.0
+ QuestionScheme-i6vwi0
+ 1
A définir
fr.insee
j6p3dkx6
- 0.1.0
+ 1
COMMENT
fr.insee
j6p3dkx6-QOP-jbgdhaht
- 0.1.0
+ 1
COMMENT
@@ -1104,26 +1114,26 @@
fr.insee
j6p3dkx6-RDOP-jbgdhaht
- 0.1.0
+ 1
OutParameter
fr.insee
j6p3dkx6-QOP-jbgdhaht
- 0.1.0
+ 1
OutParameter
- Before starting, do you have any comments about the Simpsons family?
+ Before starting, do you have any comments about the Simpsons family?
fr.insee
j6p3dkx6-RDOP-jbgdhaht
- 0.1.0
+ 1
@@ -1131,14 +1141,14 @@
fr.insee
j6p0np9q
- 0.1.0
+ 1
READY
fr.insee
j6p0np9q-QOP-jbgd3set
- 0.1.0
+ 1
READY
@@ -1147,13 +1157,13 @@
fr.insee
j6p0np9q-RDOP-jbgd3set
- 0.1.0
+ 1
OutParameter
fr.insee
j6p0np9q-QOP-jbgd3set
- 0.1.0
+ 1
OutParameter
@@ -1166,14 +1176,14 @@
fr.insee
j6p0np9q-RDOP-jbgd3set
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -1184,32 +1194,34 @@
- fr.insee
- j6p6my1d
- 0.1.0
-
-
-
- If you are not ready, please go to the end of the
- questionnaire
- $READY != '1'
- j6z12s2d
-
-
-
+
+ fr.insee
+ j6p6my1d
+ 1
+
+
+
+ If you are not ready, please go to the end of the
+ questionnaire
+ $READY != '1'
+ j6z12s2d
+
+
+
+
fr.insee
j3343qhx
- 0.1.0
+ 1
PRODUCER
fr.insee
j3343qhx-QOP-jbgd90cy
- 0.1.0
+ 1
PRODUCER
@@ -1218,13 +1230,13 @@
fr.insee
j3343qhx-RDOP-jbgd90cy
- 0.1.0
+ 1
OutParameter
fr.insee
j3343qhx-QOP-jbgd90cy
- 0.1.0
+ 1
OutParameter
@@ -1237,7 +1249,7 @@
fr.insee
j3343qhx-RDOP-jbgd90cy
- 0.1.0
+ 1
@@ -1245,14 +1257,14 @@
fr.insee
j6q9h8tj
- 0.1.0
+ 1
SEASON_NUMBER
fr.insee
j6q9h8tj-QOP-jbgdjy8h
- 0.1.0
+ 1
SEASON_NUMBER
@@ -1261,13 +1273,13 @@
fr.insee
j6q9h8tj-RDOP-jbgdjy8h
- 0.1.0
+ 1
OutParameter
fr.insee
j6q9h8tj-QOP-jbgdjy8h
- 0.1.0
+ 1
OutParameter
@@ -1281,25 +1293,25 @@
0
99
- Decimal
+ Decimal
fr.insee
j6q9h8tj-RDOP-jbgdjy8h
- 0.1.0
+ 1
fr.insee
j334cyqb
- 0.1.0
+ 1
DATEFIRST
fr.insee
j334cyqb-QOP-jbgdih2z
- 0.1.0
+ 1
DATEFIRST
@@ -1308,13 +1320,13 @@
fr.insee
j334cyqb-RDOP-jbgdih2z
- 0.1.0
+ 1
OutParameter
fr.insee
j334cyqb-QOP-jbgdih2z
- 0.1.0
+ 1
OutParameter
@@ -1325,17 +1337,17 @@
fr.insee
- INSEE-COMMUN-MNR-DateTimedate
- 0.1.0
+ INSEE-COMMUN-MNR-DateTimedate-YYYY-MM-DD
+ 1
ManagedDateTimeRepresentation
fr.insee
j334cyqb-RDOP-jbgdih2z
- 0.1.0
+ 1
fr.insee
- INSEE-COMMUN-MNR-DateTimedate
- 0.1.0
+ INSEE-COMMUN-MNR-DateTimedate-YYYY-MM-DD
+ 1
ManagedDateTimeRepresentation
@@ -1343,21 +1355,21 @@
fr.insee
d11
- 0.1.0
+ 1
Instruction
fr.insee
j6z06z1e
- 0.1.0
+ 1
AUDIENCE_SHARE
fr.insee
j6z06z1e-QOP-jbgddnrd
- 0.1.0
+ 1
AUDIENCE_SHARE
@@ -1366,20 +1378,20 @@
fr.insee
j6z06z1e-RDOP-jbgddnrd
- 0.1.0
+ 1
OutParameter
fr.insee
j6z06z1e-QOP-jbgddnrd
- 0.1.0
+ 1
OutParameter
In your opinion, how much is the part of audience share in US for the 2016
- season?
+ season?
@@ -1387,25 +1399,25 @@
0
99
- Decimal
+ Decimal
fr.insee
j6z06z1e-RDOP-jbgddnrd
- 0.1.0
+ 1
fr.insee
j3343clt
- 0.1.0
+ 1
CITY
fr.insee
j3343clt-QOP-jbgdjdkn
- 0.1.0
+ 1
CITY
@@ -1414,13 +1426,13 @@
fr.insee
j3343clt-RDOP-jbgdjdkn
- 0.1.0
+ 1
OutParameter
fr.insee
j3343clt-QOP-jbgdjdkn
- 0.1.0
+ 1
OutParameter
@@ -1430,46 +1442,46 @@
- radio-button
+ radio-button
fr.insee
j334iumu
- 0.1.0
+ 1
CodeList
fr.insee
j3343clt-RDOP-jbgdjdkn
- 0.1.0
+ 1
fr.insee
j334iumu
- 0.1.0
+ 1
CodeList
-
+
fr.insee
d3
- 0.1.0
+ 1
Instruction
fr.insee
j6qdfhvw
- 0.1.0
+ 1
MAYOR
fr.insee
j6qdfhvw-QOP-jbgd8ghp
- 0.1.0
+ 1
MAYOR
@@ -1478,13 +1490,13 @@
fr.insee
j6qdfhvw-RDOP-jbgd8ghp
- 0.1.0
+ 1
OutParameter
fr.insee
j6qdfhvw-QOP-jbgd8ghp
- 0.1.0
+ 1
OutParameter
@@ -1494,22 +1506,22 @@
- checkbox
+ checkbox
fr.insee
j6qdqoen
- 0.1.0
+ 1
CodeList
fr.insee
j6qdfhvw-RDOP-jbgd8ghp
- 0.1.0
+ 1
fr.insee
j6qdqoen
- 0.1.0
+ 1
CodeList
@@ -1519,21 +1531,21 @@
fr.insee
d4
- 0.1.0
+ 1
Instruction
fr.insee
j4nw5cqz
- 0.1.0
+ 1
STATE
fr.insee
j4nw5cqz-QOP-jbgdkd7v
- 0.1.0
+ 1
STATE
@@ -1542,13 +1554,13 @@
fr.insee
j4nw5cqz-RDOP-jbgdkd7v
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw5cqz-QOP-jbgdkd7v
- 0.1.0
+ 1
OutParameter
@@ -1558,22 +1570,22 @@
- drop-down-list
+ drop-down-list
fr.insee
j4nwo00f
- 0.1.0
+ 1
CodeList
fr.insee
j4nw5cqz-RDOP-jbgdkd7v
- 0.1.0
+ 1
fr.insee
j4nwo00f
- 0.1.0
+ 1
CodeList
@@ -1584,14 +1596,14 @@
fr.insee
j6z0z3us
- 0.1.0
+ 1
SURVEY_COMMENT
fr.insee
j6z0z3us-QOP-jbgd6m6e
- 0.1.0
+ 1
SURVEY_COMMENT
@@ -1600,13 +1612,13 @@
fr.insee
j6z0z3us-RDOP-jbgd6m6e
- 0.1.0
+ 1
OutParameter
fr.insee
j6z0z3us-QOP-jbgd6m6e
- 0.1.0
+ 1
OutParameter
@@ -1619,7 +1631,7 @@
fr.insee
j6z0z3us-RDOP-jbgd6m6e
- 0.1.0
+ 1
@@ -1627,14 +1639,14 @@
fr.insee
j334akov
- 0.1.0
+ 1
PET
fr.insee
j334akov-QOP-jbgd8qmn
- 0.1.0
+ 1
PET1
@@ -1642,7 +1654,7 @@
fr.insee
j334akov-QOP-jbgd60vl
- 0.1.0
+ 1
PET2
@@ -1650,7 +1662,7 @@
fr.insee
j334akov-QOP-jbgda2jo
- 0.1.0
+ 1
PET3
@@ -1658,7 +1670,7 @@
fr.insee
j334akov-QOP-jbgdfssy
- 0.1.0
+ 1
PET4
@@ -1667,13 +1679,13 @@
fr.insee
j334akov-RDOP-jbgd8qmn
- 0.1.0
+ 1
OutParameter
fr.insee
j334akov-QOP-jbgd8qmn
- 0.1.0
+ 1
OutParameter
@@ -1681,13 +1693,13 @@
fr.insee
j334akov-RDOP-jbgd60vl
- 0.1.0
+ 1
OutParameter
fr.insee
j334akov-QOP-jbgd60vl
- 0.1.0
+ 1
OutParameter
@@ -1695,13 +1707,13 @@
fr.insee
j334akov-RDOP-jbgda2jo
- 0.1.0
+ 1
OutParameter
fr.insee
j334akov-QOP-jbgda2jo
- 0.1.0
+ 1
OutParameter
@@ -1709,13 +1721,13 @@
fr.insee
j334akov-RDOP-jbgdfssy
- 0.1.0
+ 1
OutParameter
fr.insee
j334akov-QOP-jbgdfssy
- 0.1.0
+ 1
OutParameter
@@ -1729,25 +1741,25 @@
fr.insee
j335cu3c
- 0.1.0
+ 1
CodeList
-
+
fr.insee
j334akov-RDOP-jbgd8qmn
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -1762,20 +1774,20 @@
-
-
+
+
fr.insee
j334akov-RDOP-jbgd60vl
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -1790,20 +1802,20 @@
-
-
+
+
fr.insee
j334akov-RDOP-jbgda2jo
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -1818,20 +1830,20 @@
-
-
+
+
fr.insee
j334akov-RDOP-jbgdfssy
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -1846,26 +1858,26 @@
-
+
fr.insee
d5
- 0.1.0
+ 1
Instruction
fr.insee
j6p29i81
- 0.1.0
+ 1
ICE_FLAVOUR
fr.insee
j6p29i81-QOP-jbgdb3jx
- 0.1.0
+ 1
ICE_FLAVOUR1
@@ -1873,7 +1885,7 @@
fr.insee
j6p29i81-QOP-jbgdb61k
- 0.1.0
+ 1
ICE_FLAVOUR2
@@ -1881,7 +1893,7 @@
fr.insee
j6p29i81-QOP-jbgdl3kc
- 0.1.0
+ 1
ICE_FLAVOUR3
@@ -1889,7 +1901,7 @@
fr.insee
j6p29i81-QOP-jbgdcobo
- 0.1.0
+ 1
ICE_FLAVOUR4
@@ -1898,13 +1910,13 @@
fr.insee
j6p29i81-RDOP-jbgdb3jx
- 0.1.0
+ 1
OutParameter
fr.insee
j6p29i81-QOP-jbgdb3jx
- 0.1.0
+ 1
OutParameter
@@ -1912,13 +1924,13 @@
fr.insee
j6p29i81-RDOP-jbgdb61k
- 0.1.0
+ 1
OutParameter
fr.insee
j6p29i81-QOP-jbgdb61k
- 0.1.0
+ 1
OutParameter
@@ -1926,13 +1938,13 @@
fr.insee
j6p29i81-RDOP-jbgdl3kc
- 0.1.0
+ 1
OutParameter
fr.insee
j6p29i81-QOP-jbgdl3kc
- 0.1.0
+ 1
OutParameter
@@ -1940,13 +1952,13 @@
fr.insee
j6p29i81-RDOP-jbgdcobo
- 0.1.0
+ 1
OutParameter
fr.insee
j6p29i81-QOP-jbgdcobo
- 0.1.0
+ 1
OutParameter
@@ -1960,30 +1972,30 @@
fr.insee
j6p2mvca
- 0.1.0
+ 1
CodeList
-
+
- radio-button
+ radio-button
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
fr.insee
j6p29i81-RDOP-jbgdb3jx
- 0.1.0
+ 1
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
@@ -1995,25 +2007,25 @@
-
-
+
+
- radio-button
+ radio-button
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
fr.insee
j6p29i81-RDOP-jbgdb61k
- 0.1.0
+ 1
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
@@ -2025,25 +2037,25 @@
-
-
+
+
- radio-button
+ radio-button
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
fr.insee
j6p29i81-RDOP-jbgdl3kc
- 0.1.0
+ 1
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
@@ -2055,25 +2067,25 @@
-
-
+
+
- radio-button
+ radio-button
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
fr.insee
j6p29i81-RDOP-jbgdcobo
- 0.1.0
+ 1
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
@@ -2085,20 +2097,20 @@
-
+
fr.insee
j6qefnga
- 0.1.0
+ 1
NUCLEAR_CHARACTER
fr.insee
j6qefnga-QOP-jbgd6p0k
- 0.1.0
+ 1
NUCLEAR_CHARACTER1
@@ -2106,7 +2118,7 @@
fr.insee
j6qefnga-QOP-jbgd9ato
- 0.1.0
+ 1
NUCLEAR_CHARACTER2
@@ -2114,7 +2126,7 @@
fr.insee
j6qefnga-QOP-jbgd3e0p
- 0.1.0
+ 1
NUCLEAR_CHARACTER3
@@ -2122,7 +2134,7 @@
fr.insee
j6qefnga-QOP-jbgdkxne
- 0.1.0
+ 1
NUCLEAR_CHARACTER4
@@ -2131,13 +2143,13 @@
fr.insee
j6qefnga-RDOP-jbgd6p0k
- 0.1.0
+ 1
OutParameter
fr.insee
j6qefnga-QOP-jbgd6p0k
- 0.1.0
+ 1
OutParameter
@@ -2145,13 +2157,13 @@
fr.insee
j6qefnga-RDOP-jbgd9ato
- 0.1.0
+ 1
OutParameter
fr.insee
j6qefnga-QOP-jbgd9ato
- 0.1.0
+ 1
OutParameter
@@ -2159,13 +2171,13 @@
fr.insee
j6qefnga-RDOP-jbgd3e0p
- 0.1.0
+ 1
OutParameter
fr.insee
j6qefnga-QOP-jbgd3e0p
- 0.1.0
+ 1
OutParameter
@@ -2173,13 +2185,13 @@
fr.insee
j6qefnga-RDOP-jbgdkxne
- 0.1.0
+ 1
OutParameter
fr.insee
j6qefnga-QOP-jbgdkxne
- 0.1.0
+ 1
OutParameter
@@ -2193,30 +2205,30 @@
fr.insee
j6qeytgc
- 0.1.0
+ 1
CodeList
-
+
- drop-down-list
+ drop-down-list
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
fr.insee
j6qefnga-RDOP-jbgd6p0k
- 0.1.0
+ 1
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
@@ -2228,25 +2240,25 @@
-
-
+
+
- drop-down-list
+ drop-down-list
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
fr.insee
j6qefnga-RDOP-jbgd9ato
- 0.1.0
+ 1
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
@@ -2258,25 +2270,25 @@
-
-
+
+
- drop-down-list
+ drop-down-list
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
fr.insee
j6qefnga-RDOP-jbgd3e0p
- 0.1.0
+ 1
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
@@ -2288,25 +2300,25 @@
-
-
+
+
- drop-down-list
+ drop-down-list
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
fr.insee
j6qefnga-RDOP-jbgdkxne
- 0.1.0
+ 1
fr.insee
jbdxh138
- 0.1.0
+ 1
CodeList
@@ -2318,20 +2330,20 @@
-
+
fr.insee
j6yzoc6g
- 0.1.0
+ 1
BIRTH_CHARACTER
fr.insee
j6yzoc6g-QOP-jbgd7fr6
- 0.1.0
+ 1
BIRTH_CHARACTER1
@@ -2339,7 +2351,7 @@
fr.insee
j6yzoc6g-QOP-jbgd5e9f
- 0.1.0
+ 1
BIRTH_CHARACTER2
@@ -2347,7 +2359,7 @@
fr.insee
j6yzoc6g-QOP-jbgd912x
- 0.1.0
+ 1
BIRTH_CHARACTER3
@@ -2355,7 +2367,7 @@
fr.insee
j6yzoc6g-QOP-jbgd6bdy
- 0.1.0
+ 1
BIRTH_CHARACTER4
@@ -2363,7 +2375,7 @@
fr.insee
j6yzoc6g-QOP-jbgddyry
- 0.1.0
+ 1
BIRTH_CHARACTER5
@@ -2372,13 +2384,13 @@
fr.insee
j6yzoc6g-RDOP-jbgd7fr6
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g-QOP-jbgd7fr6
- 0.1.0
+ 1
OutParameter
@@ -2386,13 +2398,13 @@
fr.insee
j6yzoc6g-RDOP-jbgd5e9f
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g-QOP-jbgd5e9f
- 0.1.0
+ 1
OutParameter
@@ -2400,13 +2412,13 @@
fr.insee
j6yzoc6g-RDOP-jbgd912x
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g-QOP-jbgd912x
- 0.1.0
+ 1
OutParameter
@@ -2414,13 +2426,13 @@
fr.insee
j6yzoc6g-RDOP-jbgd6bdy
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g-QOP-jbgd6bdy
- 0.1.0
+ 1
OutParameter
@@ -2428,13 +2440,13 @@
fr.insee
j6yzoc6g-RDOP-jbgddyry
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g-QOP-jbgddyry
- 0.1.0
+ 1
OutParameter
@@ -2448,30 +2460,30 @@
fr.insee
j6z087mq
- 0.1.0
+ 1
CodeList
-
+
- checkbox
+ checkbox
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
fr.insee
j6yzoc6g-RDOP-jbgd7fr6
- 0.1.0
+ 1
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
@@ -2483,25 +2495,25 @@
-
-
+
+
- checkbox
+ checkbox
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
fr.insee
j6yzoc6g-RDOP-jbgd5e9f
- 0.1.0
+ 1
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
@@ -2513,25 +2525,25 @@
-
-
+
+
- checkbox
+ checkbox
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
fr.insee
j6yzoc6g-RDOP-jbgd912x
- 0.1.0
+ 1
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
@@ -2543,25 +2555,25 @@
-
-
+
+
- checkbox
+ checkbox
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
fr.insee
j6yzoc6g-RDOP-jbgd6bdy
- 0.1.0
+ 1
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
@@ -2573,25 +2585,25 @@
-
-
+
+
- checkbox
+ checkbox
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
fr.insee
j6yzoc6g-RDOP-jbgddyry
- 0.1.0
+ 1
fr.insee
jbdxricm
- 0.1.0
+ 1
CodeList
@@ -2603,20 +2615,20 @@
-
+
fr.insee
j4nwc63q
- 0.1.0
+ 1
PERCENTAGE_EXPENSES
fr.insee
j4nwc63q-QOP-jbgde5yl
- 0.1.0
+ 1
PERCENTAGE_EXPENSES11
@@ -2624,7 +2636,7 @@
fr.insee
j4nwc63q-QOP-jbgd2x2t
- 0.1.0
+ 1
PERCENTAGE_EXPENSES21
@@ -2632,7 +2644,7 @@
fr.insee
j4nwc63q-QOP-jbgdjypz
- 0.1.0
+ 1
PERCENTAGE_EXPENSES31
@@ -2640,7 +2652,7 @@
fr.insee
j4nwc63q-QOP-jbgdcftu
- 0.1.0
+ 1
PERCENTAGE_EXPENSES41
@@ -2648,7 +2660,7 @@
fr.insee
j4nwc63q-QOP-jbgdiyfe
- 0.1.0
+ 1
PERCENTAGE_EXPENSES51
@@ -2656,7 +2668,7 @@
fr.insee
j4nwc63q-QOP-jbgdj1wd
- 0.1.0
+ 1
PERCENTAGE_EXPENSES61
@@ -2664,7 +2676,7 @@
fr.insee
j4nwc63q-QOP-jbgddylk
- 0.1.0
+ 1
PERCENTAGE_EXPENSES71
@@ -2672,7 +2684,7 @@
fr.insee
j4nwc63q-QOP-jbgd3jj6
- 0.1.0
+ 1
PERCENTAGE_EXPENSES81
@@ -2680,7 +2692,7 @@
fr.insee
j4nwc63q-QOP-jbgd4w3k
- 0.1.0
+ 1
PERCENTAGE_EXPENSES91
@@ -2688,7 +2700,7 @@
fr.insee
j4nwc63q-QOP-jbgd4w4k
- 0.1.0
+ 1
PERCENTAGE_EXPENSES101
@@ -2697,13 +2709,13 @@
fr.insee
j4nwc63q-RDOP-jbgde5yl
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgde5yl
- 0.1.0
+ 1
OutParameter
@@ -2711,13 +2723,13 @@
fr.insee
j4nwc63q-RDOP-jbgd2x2t
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgd2x2t
- 0.1.0
+ 1
OutParameter
@@ -2725,13 +2737,13 @@
fr.insee
j4nwc63q-RDOP-jbgdjypz
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgdjypz
- 0.1.0
+ 1
OutParameter
@@ -2739,13 +2751,13 @@
fr.insee
j4nwc63q-RDOP-jbgdcftu
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgdcftu
- 0.1.0
+ 1
OutParameter
@@ -2753,13 +2765,13 @@
fr.insee
j4nwc63q-RDOP-jbgdiyfe
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgdiyfe
- 0.1.0
+ 1
OutParameter
@@ -2767,13 +2779,13 @@
fr.insee
j4nwc63q-RDOP-jbgdj1wd
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgdj1wd
- 0.1.0
+ 1
OutParameter
@@ -2781,13 +2793,13 @@
fr.insee
j4nwc63q-RDOP-jbgddylk
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgddylk
- 0.1.0
+ 1
OutParameter
@@ -2795,13 +2807,13 @@
fr.insee
j4nwc63q-RDOP-jbgd3jj6
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgd3jj6
- 0.1.0
+ 1
OutParameter
@@ -2809,13 +2821,13 @@
fr.insee
j4nwc63q-RDOP-jbgd4w3k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgd4w3k
- 0.1.0
+ 1
OutParameter
@@ -2823,20 +2835,20 @@
fr.insee
j4nwc63q-RDOP-jbgd4w4k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q-QOP-jbgd4w4k
- 0.1.0
+ 1
OutParameter
Please, specify the percentage of Jay's expenses in the Kwik-E-Mart for each
- product?
+ product?
@@ -2844,7 +2856,7 @@
fr.insee
j4nwh16i
- 0.1.0
+ 1
CodeList
@@ -2854,23 +2866,23 @@
fr.insee
j4nwc63q-secondDimension-fakeCL-1
- 0.1.0
+ 1
CodeList
-
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgde5yl
- 0.1.0
+ 1
@@ -2879,18 +2891,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgd2x2t
- 0.1.0
+ 1
@@ -2899,18 +2911,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgdjypz
- 0.1.0
+ 1
@@ -2919,18 +2931,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgdcftu
- 0.1.0
+ 1
@@ -2939,18 +2951,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgdiyfe
- 0.1.0
+ 1
@@ -2959,18 +2971,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgdj1wd
- 0.1.0
+ 1
@@ -2979,18 +2991,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgddylk
- 0.1.0
+ 1
@@ -2999,18 +3011,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgd3jj6
- 0.1.0
+ 1
@@ -3019,18 +3031,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgd4w3k
- 0.1.0
+ 1
@@ -3039,18 +3051,18 @@
-
-
+
+
0
100
- Decimal
+ Decimal
fr.insee
j4nwc63q-RDOP-jbgd4w4k
- 0.1.0
+ 1
@@ -3059,20 +3071,20 @@
-
+
fr.insee
j4nw0rr6
- 0.1.0
+ 1
CLOWNING
fr.insee
j4nw0rr6-QOP-jbgd8tyr
- 0.1.0
+ 1
CLOWNING11
@@ -3080,7 +3092,7 @@
fr.insee
j4nw0rr6-QOP-jbgdep36
- 0.1.0
+ 1
CLOWNING21
@@ -3088,7 +3100,7 @@
fr.insee
j4nw0rr6-QOP-jbgdjjgi
- 0.1.0
+ 1
CLOWNING31
@@ -3096,7 +3108,7 @@
fr.insee
j4nw0rr6-QOP-jbgdgh6k
- 0.1.0
+ 1
CLOWNING41
@@ -3104,7 +3116,7 @@
fr.insee
j4nw0rr6-QOP-jbgdit3o
- 0.1.0
+ 1
CLOWNING12
@@ -3112,7 +3124,7 @@
fr.insee
j4nw0rr6-QOP-jbgd366k
- 0.1.0
+ 1
CLOWNING22
@@ -3120,7 +3132,7 @@
fr.insee
j4nw0rr6-QOP-jbgdax06
- 0.1.0
+ 1
CLOWNING32
@@ -3128,7 +3140,7 @@
fr.insee
j4nw0rr6-QOP-jbgdfo1j
- 0.1.0
+ 1
CLOWNING42
@@ -3137,13 +3149,13 @@
fr.insee
j4nw0rr6-RDOP-jbgd8tyr
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6-QOP-jbgd8tyr
- 0.1.0
+ 1
OutParameter
@@ -3151,13 +3163,13 @@
fr.insee
j4nw0rr6-RDOP-jbgdep36
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6-QOP-jbgdep36
- 0.1.0
+ 1
OutParameter
@@ -3165,13 +3177,13 @@
fr.insee
j4nw0rr6-RDOP-jbgdjjgi
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6-QOP-jbgdjjgi
- 0.1.0
+ 1
OutParameter
@@ -3179,13 +3191,13 @@
fr.insee
j4nw0rr6-RDOP-jbgdgh6k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6-QOP-jbgdgh6k
- 0.1.0
+ 1
OutParameter
@@ -3193,13 +3205,13 @@
fr.insee
j4nw0rr6-RDOP-jbgdit3o
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6-QOP-jbgdit3o
- 0.1.0
+ 1
OutParameter
@@ -3207,13 +3219,13 @@
fr.insee
j4nw0rr6-RDOP-jbgd366k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6-QOP-jbgd366k
- 0.1.0
+ 1
OutParameter
@@ -3221,13 +3233,13 @@
fr.insee
j4nw0rr6-RDOP-jbgdax06
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6-QOP-jbgdax06
- 0.1.0
+ 1
OutParameter
@@ -3235,19 +3247,19 @@
fr.insee
j4nw0rr6-RDOP-jbgdfo1j
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6-QOP-jbgdfo1j
- 0.1.0
+ 1
OutParameter
- Who did these clownings and tell us what you remember?
+ Who did these clownings and tell us what you remember?
@@ -3255,7 +3267,7 @@
fr.insee
j77dav9b
- 0.1.0
+ 1
CodeList
@@ -3265,30 +3277,30 @@
fr.insee
j4nw0rr6-secondDimension-fakeCL-1
- 0.1.0
+ 1
CodeList
-
+
- drop-down-list
+ drop-down-list
fr.insee
jbdyh6b5
- 0.1.0
+ 1
CodeList
fr.insee
j4nw0rr6-RDOP-jbgd8tyr
- 0.1.0
+ 1
fr.insee
jbdyh6b5
- 0.1.0
+ 1
CodeList
@@ -3301,25 +3313,25 @@
-
-
+
+
- drop-down-list
+ drop-down-list
fr.insee
jbdyh6b5
- 0.1.0
+ 1
CodeList
fr.insee
j4nw0rr6-RDOP-jbgdep36
- 0.1.0
+ 1
fr.insee
jbdyh6b5
- 0.1.0
+ 1
CodeList
@@ -3332,25 +3344,25 @@
-
-
+
+
- drop-down-list
+ drop-down-list
fr.insee
jbdyh6b5
- 0.1.0
+ 1
CodeList
fr.insee
j4nw0rr6-RDOP-jbgdjjgi
- 0.1.0
+ 1
fr.insee
jbdyh6b5
- 0.1.0
+ 1
CodeList
@@ -3363,25 +3375,25 @@
-
-
+
+
- drop-down-list
+ drop-down-list
fr.insee
jbdyh6b5
- 0.1.0
+ 1
CodeList
fr.insee
j4nw0rr6-RDOP-jbgdgh6k
- 0.1.0
+ 1
fr.insee
jbdyh6b5
- 0.1.0
+ 1
CodeList
@@ -3394,13 +3406,13 @@
-
-
+
+
fr.insee
j4nw0rr6-RDOP-jbgdit3o
- 0.1.0
+ 1
@@ -3410,13 +3422,13 @@
-
-
+
+
fr.insee
j4nw0rr6-RDOP-jbgd366k
- 0.1.0
+ 1
@@ -3426,13 +3438,13 @@
-
-
+
+
fr.insee
j4nw0rr6-RDOP-jbgdax06
- 0.1.0
+ 1
@@ -3442,13 +3454,13 @@
-
-
+
+
fr.insee
j4nw0rr6-RDOP-jbgdfo1j
- 0.1.0
+ 1
@@ -3458,20 +3470,20 @@
-
+
fr.insee
j6p2lwuj
- 0.1.0
+ 1
TRAVEL
fr.insee
j6p2lwuj-QOP-jbgd92mb
- 0.1.0
+ 1
TRAVEL11
@@ -3479,7 +3491,7 @@
fr.insee
j6p2lwuj-QOP-jbgdgsat
- 0.1.0
+ 1
TRAVEL21
@@ -3487,7 +3499,7 @@
fr.insee
j6p2lwuj-QOP-jbgdaxk2
- 0.1.0
+ 1
TRAVEL31
@@ -3495,7 +3507,7 @@
fr.insee
j6p2lwuj-QOP-jbgd7myn
- 0.1.0
+ 1
TRAVEL41
@@ -3503,7 +3515,7 @@
fr.insee
j6p2lwuj-QOP-jbgdnxkt
- 0.1.0
+ 1
TRAVEL12
@@ -3511,7 +3523,7 @@
fr.insee
j6p2lwuj-QOP-jbgd3ef5
- 0.1.0
+ 1
TRAVEL22
@@ -3519,7 +3531,7 @@
fr.insee
j6p2lwuj-QOP-jbgd8p1v
- 0.1.0
+ 1
TRAVEL32
@@ -3527,7 +3539,7 @@
fr.insee
j6p2lwuj-QOP-jbgdgm0c
- 0.1.0
+ 1
TRAVEL42
@@ -3535,7 +3547,7 @@
fr.insee
j6p2lwuj-QOP-jbgdcppc
- 0.1.0
+ 1
TRAVEL13
@@ -3543,7 +3555,7 @@
fr.insee
j6p2lwuj-QOP-jbgd4cm6
- 0.1.0
+ 1
TRAVEL23
@@ -3551,7 +3563,7 @@
fr.insee
j6p2lwuj-QOP-jbgdd2lo
- 0.1.0
+ 1
TRAVEL33
@@ -3559,7 +3571,7 @@
fr.insee
j6p2lwuj-QOP-jbgdo0ay
- 0.1.0
+ 1
TRAVEL43
@@ -3567,7 +3579,7 @@
fr.insee
j6p2lwuj-QOP-jbgd4r2a
- 0.1.0
+ 1
TRAVEL14
@@ -3575,7 +3587,7 @@
fr.insee
j6p2lwuj-QOP-jbgdkfpq
- 0.1.0
+ 1
TRAVEL24
@@ -3583,7 +3595,7 @@
fr.insee
j6p2lwuj-QOP-jbgd7u52
- 0.1.0
+ 1
TRAVEL34
@@ -3591,7 +3603,7 @@
fr.insee
j6p2lwuj-QOP-jbgdgfwl
- 0.1.0
+ 1
TRAVEL44
@@ -3599,7 +3611,7 @@
fr.insee
j6p2lwuj-QOP-jbgd9cff
- 0.1.0
+ 1
TRAVEL15
@@ -3607,7 +3619,7 @@
fr.insee
j6p2lwuj-QOP-jbgddwsp
- 0.1.0
+ 1
TRAVEL25
@@ -3615,7 +3627,7 @@
fr.insee
j6p2lwuj-QOP-jbgdncn8
- 0.1.0
+ 1
TRAVEL35
@@ -3623,7 +3635,7 @@
fr.insee
j6p2lwuj-QOP-jbgdnz6b
- 0.1.0
+ 1
TRAVEL45
@@ -3631,7 +3643,7 @@
fr.insee
j6p2lwuj-QOP-jbgdiva0
- 0.1.0
+ 1
TRAVEL16
@@ -3639,7 +3651,7 @@
fr.insee
j6p2lwuj-QOP-jbgd7dqf
- 0.1.0
+ 1
TRAVEL26
@@ -3647,7 +3659,7 @@
fr.insee
j6p2lwuj-QOP-jbgdnous
- 0.1.0
+ 1
TRAVEL36
@@ -3655,7 +3667,7 @@
fr.insee
j6p2lwuj-QOP-jbgdkfcz
- 0.1.0
+ 1
TRAVEL46
@@ -3664,13 +3676,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd92mb
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd92mb
- 0.1.0
+ 1
OutParameter
@@ -3678,13 +3690,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdgsat
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdgsat
- 0.1.0
+ 1
OutParameter
@@ -3692,13 +3704,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdaxk2
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdaxk2
- 0.1.0
+ 1
OutParameter
@@ -3706,13 +3718,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd7myn
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd7myn
- 0.1.0
+ 1
OutParameter
@@ -3720,13 +3732,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdnxkt
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdnxkt
- 0.1.0
+ 1
OutParameter
@@ -3734,13 +3746,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd3ef5
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd3ef5
- 0.1.0
+ 1
OutParameter
@@ -3748,13 +3760,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd8p1v
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd8p1v
- 0.1.0
+ 1
OutParameter
@@ -3762,13 +3774,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdgm0c
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdgm0c
- 0.1.0
+ 1
OutParameter
@@ -3776,13 +3788,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdcppc
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdcppc
- 0.1.0
+ 1
OutParameter
@@ -3790,13 +3802,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd4cm6
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd4cm6
- 0.1.0
+ 1
OutParameter
@@ -3804,13 +3816,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdd2lo
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdd2lo
- 0.1.0
+ 1
OutParameter
@@ -3818,13 +3830,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdo0ay
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdo0ay
- 0.1.0
+ 1
OutParameter
@@ -3832,13 +3844,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd4r2a
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd4r2a
- 0.1.0
+ 1
OutParameter
@@ -3846,13 +3858,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdkfpq
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdkfpq
- 0.1.0
+ 1
OutParameter
@@ -3860,13 +3872,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd7u52
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd7u52
- 0.1.0
+ 1
OutParameter
@@ -3874,13 +3886,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdgfwl
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdgfwl
- 0.1.0
+ 1
OutParameter
@@ -3888,13 +3900,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd9cff
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd9cff
- 0.1.0
+ 1
OutParameter
@@ -3902,13 +3914,13 @@
fr.insee
j6p2lwuj-RDOP-jbgddwsp
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgddwsp
- 0.1.0
+ 1
OutParameter
@@ -3916,13 +3928,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdncn8
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdncn8
- 0.1.0
+ 1
OutParameter
@@ -3930,13 +3942,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdnz6b
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdnz6b
- 0.1.0
+ 1
OutParameter
@@ -3944,13 +3956,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdiva0
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdiva0
- 0.1.0
+ 1
OutParameter
@@ -3958,13 +3970,13 @@
fr.insee
j6p2lwuj-RDOP-jbgd7dqf
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgd7dqf
- 0.1.0
+ 1
OutParameter
@@ -3972,13 +3984,13 @@
fr.insee
j6p2lwuj-RDOP-jbgdnous
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdnous
- 0.1.0
+ 1
OutParameter
@@ -3986,20 +3998,20 @@
fr.insee
j6p2lwuj-RDOP-jbgdkfcz
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj-QOP-jbgdkfcz
- 0.1.0
+ 1
OutParameter
Which of the following means of transport were used by the hero and in which
- country?
+ country?
@@ -4007,7 +4019,7 @@
fr.insee
j6p2kivg
- 0.1.0
+ 1
CodeList
@@ -4017,25 +4029,25 @@
fr.insee
jbdye1wa
- 0.1.0
+ 1
CodeList
-
+
fr.insee
j6p2lwuj-RDOP-jbgd92mb
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4051,20 +4063,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdgsat
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4080,20 +4092,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdaxk2
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4109,20 +4121,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgd7myn
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4138,20 +4150,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdnxkt
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4167,20 +4179,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgd3ef5
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4196,20 +4208,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgd8p1v
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4225,20 +4237,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdgm0c
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4254,20 +4266,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdcppc
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4283,20 +4295,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgd4cm6
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4312,20 +4324,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdd2lo
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4341,20 +4353,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdo0ay
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4370,20 +4382,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgd4r2a
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4399,20 +4411,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdkfpq
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4428,20 +4440,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgd7u52
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4457,20 +4469,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdgfwl
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4486,20 +4498,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgd9cff
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4515,20 +4527,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgddwsp
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4544,20 +4556,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdncn8
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4573,20 +4585,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdnz6b
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4602,20 +4614,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdiva0
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4631,20 +4643,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgd7dqf
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4660,20 +4672,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdnous
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4689,20 +4701,20 @@
-
-
+
+
fr.insee
j6p2lwuj-RDOP-jbgdkfcz
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
Code
@@ -4718,26 +4730,26 @@
-
+
fr.insee
d10
- 0.1.0
+ 1
Instruction
fr.insee
j6qg8rc6
- 0.1.0
+ 1
FAVOURITE_CHARACTERS
fr.insee
j6qg8rc6-QOP-jbgdl5jb
- 0.1.0
+ 1
FAVOURITE_CHARACTERS11
@@ -4745,7 +4757,7 @@
fr.insee
j6qg8rc6-QOP-jbgd8lwo
- 0.1.0
+ 1
FAVOURITE_CHARACTERS21
@@ -4753,7 +4765,7 @@
fr.insee
j6qg8rc6-QOP-jbgdbfag
- 0.1.0
+ 1
FAVOURITE_CHARACTERS31
@@ -4761,7 +4773,7 @@
fr.insee
j6qg8rc6-QOP-jbgdlgja
- 0.1.0
+ 1
FAVOURITE_CHARACTERS41
@@ -4769,7 +4781,7 @@
fr.insee
j6qg8rc6-QOP-jbgd745y
- 0.1.0
+ 1
FAVOURITE_CHARACTERS51
@@ -4777,7 +4789,7 @@
fr.insee
j6qg8rc6-QOP-jbgdjkts
- 0.1.0
+ 1
FAVOURITE_CHARACTERS61
@@ -4785,7 +4797,7 @@
fr.insee
j6qg8rc6-QOP-jbgdcax7
- 0.1.0
+ 1
FAVOURITE_CHARACTERS71
@@ -4793,7 +4805,7 @@
fr.insee
j6qg8rc6-QOP-jbgdjye1
- 0.1.0
+ 1
FAVOURITE_CHARACTERS81
@@ -4801,7 +4813,7 @@
fr.insee
j6qg8rc6-QOP-jbgd5jet
- 0.1.0
+ 1
FAVOURITE_CHARACTERS91
@@ -4809,7 +4821,7 @@
fr.insee
j6qg8rc6-QOP-jbgdjw90
- 0.1.0
+ 1
FAVOURITE_CHARACTERS101
@@ -4817,7 +4829,7 @@
fr.insee
j6qg8rc6-QOP-jbgdfndq
- 0.1.0
+ 1
FAVOURITE_CHARACTERS12
@@ -4825,7 +4837,7 @@
fr.insee
j6qg8rc6-QOP-jbgd7osi
- 0.1.0
+ 1
FAVOURITE_CHARACTERS22
@@ -4833,7 +4845,7 @@
fr.insee
j6qg8rc6-QOP-jbgd7bnw
- 0.1.0
+ 1
FAVOURITE_CHARACTERS32
@@ -4841,7 +4853,7 @@
fr.insee
j6qg8rc6-QOP-jbgd9k71
- 0.1.0
+ 1
FAVOURITE_CHARACTERS42
@@ -4849,7 +4861,7 @@
fr.insee
j6qg8rc6-QOP-jbgdimks
- 0.1.0
+ 1
FAVOURITE_CHARACTERS52
@@ -4857,7 +4869,7 @@
fr.insee
j6qg8rc6-QOP-jbgdjquz
- 0.1.0
+ 1
FAVOURITE_CHARACTERS62
@@ -4865,7 +4877,7 @@
fr.insee
j6qg8rc6-QOP-jbgdd2w3
- 0.1.0
+ 1
FAVOURITE_CHARACTERS72
@@ -4873,7 +4885,7 @@
fr.insee
j6qg8rc6-QOP-jbgdkosc
- 0.1.0
+ 1
FAVOURITE_CHARACTERS82
@@ -4881,7 +4893,7 @@
fr.insee
j6qg8rc6-QOP-jbgdk0x4
- 0.1.0
+ 1
FAVOURITE_CHARACTERS92
@@ -4889,7 +4901,7 @@
fr.insee
j6qg8rc6-QOP-jbgd2wgf
- 0.1.0
+ 1
FAVOURITE_CHARACTERS102
@@ -4898,13 +4910,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdl5jb
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdl5jb
- 0.1.0
+ 1
OutParameter
@@ -4912,13 +4924,13 @@
fr.insee
j6qg8rc6-RDOP-jbgd8lwo
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgd8lwo
- 0.1.0
+ 1
OutParameter
@@ -4926,13 +4938,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdbfag
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdbfag
- 0.1.0
+ 1
OutParameter
@@ -4940,13 +4952,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdlgja
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdlgja
- 0.1.0
+ 1
OutParameter
@@ -4954,13 +4966,13 @@
fr.insee
j6qg8rc6-RDOP-jbgd745y
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgd745y
- 0.1.0
+ 1
OutParameter
@@ -4968,13 +4980,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdjkts
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdjkts
- 0.1.0
+ 1
OutParameter
@@ -4982,13 +4994,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdcax7
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdcax7
- 0.1.0
+ 1
OutParameter
@@ -4996,13 +5008,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdjye1
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdjye1
- 0.1.0
+ 1
OutParameter
@@ -5010,13 +5022,13 @@
fr.insee
j6qg8rc6-RDOP-jbgd5jet
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgd5jet
- 0.1.0
+ 1
OutParameter
@@ -5024,13 +5036,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdjw90
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdjw90
- 0.1.0
+ 1
OutParameter
@@ -5038,13 +5050,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdfndq
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdfndq
- 0.1.0
+ 1
OutParameter
@@ -5052,13 +5064,13 @@
fr.insee
j6qg8rc6-RDOP-jbgd7osi
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgd7osi
- 0.1.0
+ 1
OutParameter
@@ -5066,13 +5078,13 @@
fr.insee
j6qg8rc6-RDOP-jbgd7bnw
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgd7bnw
- 0.1.0
+ 1
OutParameter
@@ -5080,13 +5092,13 @@
fr.insee
j6qg8rc6-RDOP-jbgd9k71
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgd9k71
- 0.1.0
+ 1
OutParameter
@@ -5094,13 +5106,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdimks
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdimks
- 0.1.0
+ 1
OutParameter
@@ -5108,13 +5120,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdjquz
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdjquz
- 0.1.0
+ 1
OutParameter
@@ -5122,13 +5134,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdd2w3
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdd2w3
- 0.1.0
+ 1
OutParameter
@@ -5136,13 +5148,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdkosc
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdkosc
- 0.1.0
+ 1
OutParameter
@@ -5150,13 +5162,13 @@
fr.insee
j6qg8rc6-RDOP-jbgdk0x4
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgdk0x4
- 0.1.0
+ 1
OutParameter
@@ -5164,13 +5176,13 @@
fr.insee
j6qg8rc6-RDOP-jbgd2wgf
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6-QOP-jbgd2wgf
- 0.1.0
+ 1
OutParameter
@@ -5187,18 +5199,18 @@
fr.insee
j6qg8rc6-secondDimension-fakeCL-1
- 0.1.0
+ 1
CodeList
-
+
fr.insee
j6qg8rc6-RDOP-jbgdl5jb
- 0.1.0
+ 1
@@ -5208,13 +5220,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgd8lwo
- 0.1.0
+ 1
@@ -5224,13 +5236,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgdbfag
- 0.1.0
+ 1
@@ -5240,13 +5252,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgdlgja
- 0.1.0
+ 1
@@ -5256,13 +5268,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgd745y
- 0.1.0
+ 1
@@ -5272,13 +5284,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgdjkts
- 0.1.0
+ 1
@@ -5288,13 +5300,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgdcax7
- 0.1.0
+ 1
@@ -5304,13 +5316,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgdjye1
- 0.1.0
+ 1
@@ -5320,13 +5332,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgd5jet
- 0.1.0
+ 1
@@ -5336,13 +5348,13 @@
-
-
+
+
fr.insee
j6qg8rc6-RDOP-jbgdjw90
- 0.1.0
+ 1
@@ -5352,18 +5364,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgdfndq
- 0.1.0
+ 1
@@ -5372,18 +5384,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgd7osi
- 0.1.0
+ 1
@@ -5392,18 +5404,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgd7bnw
- 0.1.0
+ 1
@@ -5412,18 +5424,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgd9k71
- 0.1.0
+ 1
@@ -5432,18 +5444,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgdimks
- 0.1.0
+ 1
@@ -5452,18 +5464,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgdjquz
- 0.1.0
+ 1
@@ -5472,18 +5484,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgdd2w3
- 0.1.0
+ 1
@@ -5492,18 +5504,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgdkosc
- 0.1.0
+ 1
@@ -5512,18 +5524,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgdk0x4
- 0.1.0
+ 1
@@ -5532,18 +5544,18 @@
-
-
+
+
0
120
- Decimal
+ Decimal
fr.insee
j6qg8rc6-RDOP-jbgd2wgf
- 0.1.0
+ 1
@@ -5552,37 +5564,37 @@
-
+
fr.insee
CategoryScheme-j334iumu
- 0.1.0
+ 1
TOWN
fr.insee
- CA-j334iumu--1
- 0.1.0
+ CA-j334iumu-1
+ 1
Springfield
fr.insee
- CA-j334iumu-0
- 0.1.0
+ CA-j334iumu-2
+ 1
Shelbyville
fr.insee
- CA-j334iumu-1
- 0.1.0
+ CA-j334iumu-3
+ 1
Seinfeld
@@ -5591,38 +5603,38 @@
fr.insee
CategoryScheme-j6qdqoen
- 0.1.0
+ 1
- MAYOR
+ MAYOR
fr.insee
- CA-j6qdqoen--1
- 0.1.0
+ CA-j6qdqoen-1
+ 1
Constance Harm
fr.insee
- CA-j6qdqoen-0
- 0.1.0
+ CA-j6qdqoen-2
+ 1
Timothy Lovejoy
fr.insee
- CA-j6qdqoen-1
- 0.1.0
+ CA-j6qdqoen-3
+ 1
Joe Quimby
fr.insee
- CA-j6qdqoen-2
- 0.1.0
+ CA-j6qdqoen-4
+ 1
Poochie
@@ -5631,110 +5643,110 @@
fr.insee
CategoryScheme-j4nwo00f
- 0.1.0
+ 1
State
fr.insee
- CA-j4nwo00f--1
- 0.1.0
+ CA-j4nwo00f-1
+ 1
Washington
fr.insee
- CA-j4nwo00f-0
- 0.1.0
+ CA-j4nwo00f-2
+ 1
Kentucky
fr.insee
- CA-j4nwo00f-1
- 0.1.0
+ CA-j4nwo00f-3
+ 1
Ohio
fr.insee
- CA-j4nwo00f-2
- 0.1.0
+ CA-j4nwo00f-4
+ 1
Maine
fr.insee
- CA-j4nwo00f-3
- 0.1.0
+ CA-j4nwo00f-5
+ 1
North Dakota
fr.insee
- CA-j4nwo00f-4
- 0.1.0
+ CA-j4nwo00f-6
+ 1
Florida
fr.insee
- CA-j4nwo00f-5
- 0.1.0
+ CA-j4nwo00f-7
+ 1
North Takoma
fr.insee
- CA-j4nwo00f-6
- 0.1.0
+ CA-j4nwo00f-8
+ 1
California
fr.insee
- CA-j4nwo00f-7
- 0.1.0
+ CA-j4nwo00f-9
+ 1
Texas
fr.insee
- CA-j4nwo00f-8
- 0.1.0
+ CA-j4nwo00f-10
+ 1
Massachusetts
fr.insee
- CA-j4nwo00f-9
- 0.1.0
+ CA-j4nwo00f-11
+ 1
Nevada
fr.insee
- CA-j4nwo00f-10
- 0.1.0
+ CA-j4nwo00f-12
+ 1
Illinois
fr.insee
- CA-j4nwo00f-11
- 0.1.0
+ CA-j4nwo00f-13
+ 1
Not in any state, you fool!
@@ -5743,38 +5755,38 @@
fr.insee
CategoryScheme-j335cu3c
- 0.1.0
+ 1
ANIMALS
fr.insee
- CA-j335cu3c--1
- 0.1.0
+ CA-j335cu3c-1
+ 1
Santa's Little Helper
fr.insee
- CA-j335cu3c-0
- 0.1.0
+ CA-j335cu3c-2
+ 1
Snowball I
fr.insee
- CA-j335cu3c-1
- 0.1.0
+ CA-j335cu3c-3
+ 1
Coltrane
fr.insee
- CA-j335cu3c-2
- 0.1.0
+ CA-j335cu3c-4
+ 1
Mojo the Helper Monkey
@@ -5783,38 +5795,38 @@
fr.insee
CategoryScheme-j6p2mvca
- 0.1.0
+ 1
Flavours
fr.insee
- CA-j6p2mvca--1
- 0.1.0
+ CA-j6p2mvca-1
+ 1
Vanilla
fr.insee
- CA-j6p2mvca-0
- 0.1.0
+ CA-j6p2mvca-2
+ 1
Strawberry
fr.insee
- CA-j6p2mvca-1
- 0.1.0
+ CA-j6p2mvca-3
+ 1
Apple
fr.insee
- CA-j6p2mvca-2
- 0.1.0
+ CA-j6p2mvca-4
+ 1
Bacon
@@ -5823,22 +5835,22 @@
fr.insee
CategoryScheme-jbdxh138
- 0.1.0
+ 1
YESNO
fr.insee
- CA-jbdxh138--1
- 0.1.0
+ CA-jbdxh138-1
+ 1
Yes
fr.insee
- CA-jbdxh138-0
- 0.1.0
+ CA-jbdxh138-2
+ 1
No
@@ -5847,38 +5859,38 @@
fr.insee
CategoryScheme-j6qeytgc
- 0.1.0
+ 1
NUCLEAR_CHARACTERS
fr.insee
- CA-j6qeytgc--1
- 0.1.0
+ CA-j6qeytgc-1
+ 1
Charles Montgomery Burns
fr.insee
- CA-j6qeytgc-0
- 0.1.0
+ CA-j6qeytgc-2
+ 1
Carl Carlson
fr.insee
- CA-j6qeytgc-1
- 0.1.0
+ CA-j6qeytgc-3
+ 1
Otto Mann
fr.insee
- CA-j6qeytgc-2
- 0.1.0
+ CA-j6qeytgc-4
+ 1
Carl Carlson
@@ -5887,46 +5899,46 @@
fr.insee
CategoryScheme-j6z087mq
- 0.1.0
+ 1
BIRTH_CHARACTER
fr.insee
- CA-j6z087mq--1
- 0.1.0
+ CA-j6z087mq-1
+ 1
Selma Bouvier
fr.insee
- CA-j6z087mq-0
- 0.1.0
+ CA-j6z087mq-2
+ 1
Kent Brockman
fr.insee
- CA-j6z087mq-1
- 0.1.0
+ CA-j6z087mq-3
+ 1
Milhouse Van Houten
fr.insee
- CA-j6z087mq-2
- 0.1.0
+ CA-j6z087mq-4
+ 1
Nelson Muntz
fr.insee
- CA-j6z087mq-3
- 0.1.0
+ CA-j6z087mq-5
+ 1
Crazy Cat Lady
@@ -5935,46 +5947,46 @@
fr.insee
CategoryScheme-jbdxricm
- 0.1.0
+ 1
CITY_BIRTH
fr.insee
- CA-jbdxricm--1
- 0.1.0
+ CA-jbdxricm-1
+ 1
Albuquerque
fr.insee
- CA-jbdxricm-0
- 0.1.0
+ CA-jbdxricm-2
+ 1
Springfield
fr.insee
- CA-jbdxricm-1
- 0.1.0
+ CA-jbdxricm-3
+ 1
Portland
fr.insee
- CA-jbdxricm-2
- 0.1.0
+ CA-jbdxricm-4
+ 1
Shelbyville
fr.insee
- CA-jbdxricm-3
- 0.1.0
+ CA-jbdxricm-5
+ 1
Dagstuhl
@@ -5983,86 +5995,86 @@
fr.insee
CategoryScheme-j4nwh16i
- 0.1.0
+ 1
Products
fr.insee
- CA-j4nwh16i--1
- 0.1.0
+ CA-j4nwh16i-1
+ 1
Frozen products
fr.insee
- CA-j4nwh16i-0
- 0.1.0
+ CA-j4nwh16i-2
+ 1
Ice creams
fr.insee
- CA-j4nwh16i-1
- 0.1.0
+ CA-j4nwh16i-3
+ 1
Jasper Beardly
fr.insee
- CA-j4nwh16i-2
- 0.1.0
+ CA-j4nwh16i-4
+ 1
Meat
fr.insee
- CA-j4nwh16i-3
- 0.1.0
+ CA-j4nwh16i-5
+ 1
Bacon
fr.insee
- CA-j4nwh16i-4
- 0.1.0
+ CA-j4nwh16i-6
+ 1
Pork chop
fr.insee
- CA-j4nwh16i-5
- 0.1.0
+ CA-j4nwh16i-7
+ 1
Chicken
fr.insee
- CA-j4nwh16i-6
- 0.1.0
+ CA-j4nwh16i-8
+ 1
Compote
fr.insee
- CA-j4nwh16i-7
- 0.1.0
+ CA-j4nwh16i-9
+ 1
Powersauce
fr.insee
- CA-j4nwh16i-8
- 0.1.0
+ CA-j4nwh16i-10
+ 1
Other
@@ -6071,38 +6083,38 @@
fr.insee
CategoryScheme-j77dav9b
- 0.1.0
+ 1
Clownings
fr.insee
- CA-j77dav9b--1
- 0.1.0
+ CA-j77dav9b-1
+ 1
Break the windows of the whole city
fr.insee
- CA-j77dav9b-0
- 0.1.0
+ CA-j77dav9b-2
+ 1
Loose the violin of his daughter playing poker
fr.insee
- CA-j77dav9b-1
- 0.1.0
+ CA-j77dav9b-3
+ 1
Kill Mr Burns
fr.insee
- CA-j77dav9b-2
- 0.1.0
+ CA-j77dav9b-4
+ 1
Leaving a mechanical object to control the nuclear power plant
@@ -6111,38 +6123,38 @@
fr.insee
CategoryScheme-jbdyh6b5
- 0.1.0
+ 1
Clowning_Characters
fr.insee
- CA-jbdyh6b5--1
- 0.1.0
+ CA-jbdyh6b5-1
+ 1
Jay
fr.insee
- CA-jbdyh6b5-0
- 0.1.0
+ CA-jbdyh6b5-2
+ 1
Bart
fr.insee
- CA-jbdyh6b5-1
- 0.1.0
+ CA-jbdyh6b5-3
+ 1
Krusty the clown
fr.insee
- CA-jbdyh6b5-2
- 0.1.0
+ CA-jbdyh6b5-4
+ 1
Maggie
@@ -6151,38 +6163,38 @@
fr.insee
CategoryScheme-j6p2kivg
- 0.1.0
+ 1
Means of transport
fr.insee
- CA-j6p2kivg--1
- 0.1.0
+ CA-j6p2kivg-1
+ 1
Car
fr.insee
- CA-j6p2kivg-0
- 0.1.0
+ CA-j6p2kivg-2
+ 1
Bike
fr.insee
- CA-j6p2kivg-1
- 0.1.0
+ CA-j6p2kivg-3
+ 1
Skateboard
fr.insee
- CA-j6p2kivg-2
- 0.1.0
+ CA-j6p2kivg-4
+ 1
Plane
@@ -6191,54 +6203,54 @@
fr.insee
CategoryScheme-jbdye1wa
- 0.1.0
+ 1
Country
fr.insee
- CA-jbdye1wa--1
- 0.1.0
+ CA-jbdye1wa-1
+ 1
Brazil
fr.insee
- CA-jbdye1wa-0
- 0.1.0
+ CA-jbdye1wa-2
+ 1
Canada
fr.insee
- CA-jbdye1wa-1
- 0.1.0
+ CA-jbdye1wa-3
+ 1
Japan
fr.insee
- CA-jbdye1wa-2
- 0.1.0
+ CA-jbdye1wa-4
+ 1
France
fr.insee
- CA-jbdye1wa-3
- 0.1.0
+ CA-jbdye1wa-5
+ 1
Other country
fr.insee
- CA-jbdye1wa-4
- 0.1.0
+ CA-jbdye1wa-6
+ 1
Other planet
@@ -6247,14 +6259,14 @@
fr.insee
CategoryScheme-j4nwc63q-secondDimension-fakeCL-1
- 0.1.0
+ 1
FAKE-CODELIST-j4nwc63q-secondDimension-fakeCL-1
fr.insee
- CA-j4nwc63q-secondDimension-fakeCL-1--1
- 0.1.0
+ CA-j4nwc63q-secondDimension-fakeCL-1-1
+ 1
Percentage
@@ -6263,22 +6275,22 @@
fr.insee
CategoryScheme-j4nw0rr6-secondDimension-fakeCL-1
- 0.1.0
+ 1
FAKE-CODELIST-j4nw0rr6-secondDimension-fakeCL-1
fr.insee
- CA-j4nw0rr6-secondDimension-fakeCL-1--1
- 0.1.0
+ CA-j4nw0rr6-secondDimension-fakeCL-1-1
+ 1
Clowning
fr.insee
- CA-j4nw0rr6-secondDimension-fakeCL-1-0
- 0.1.0
+ CA-j4nw0rr6-secondDimension-fakeCL-1-2
+ 1
Remember?
@@ -6287,22 +6299,22 @@
fr.insee
CategoryScheme-j6qg8rc6-secondDimension-fakeCL-1
- 0.1.0
+ 1
FAKE-CODELIST-j6qg8rc6-secondDimension-fakeCL-1
fr.insee
- CA-j6qg8rc6-secondDimension-fakeCL-1--1
- 0.1.0
+ CA-j6qg8rc6-secondDimension-fakeCL-1-1
+ 1
Name
fr.insee
- CA-j6qg8rc6-secondDimension-fakeCL-1-0
- 0.1.0
+ CA-j6qg8rc6-secondDimension-fakeCL-1-2
+ 1
Age
@@ -6310,15 +6322,15 @@
fr.insee
- CategoryScheme-i6vwid
- 0.1.0
+ CategoryScheme-i6vwi0
+ 1
A définir
fr.insee
INSEE-COMMUN-CA-Booleen-1
- 0.1.0
+ 1
@@ -6327,14 +6339,14 @@
fr.insee
SIMPSONS-CLS
- 0.1.0
+ 1
SIMPSONS
fr.insee
j334iumu
- 0.1.0
+ 1
TOWN
@@ -6344,36 +6356,36 @@
fr.insee
- j334iumu--1
- 0.1.0
+ j334iumu-1
+ 1
fr.insee
- CA-j334iumu--1
- 0.1.0
+ CA-j334iumu-1
+ 1
Category
00001
fr.insee
- j334iumu-0
- 0.1.0
+ j334iumu-2
+ 1
fr.insee
- CA-j334iumu-0
- 0.1.0
+ CA-j334iumu-2
+ 1
Category
00002
fr.insee
- j334iumu-1
- 0.1.0
+ j334iumu-3
+ 1
fr.insee
- CA-j334iumu-1
- 0.1.0
+ CA-j334iumu-3
+ 1
Category
00003
@@ -6382,9 +6394,9 @@
fr.insee
j6qdqoen
- 0.1.0
+ 1
- MAYOR
+ MAYOR
Regular
@@ -6392,48 +6404,48 @@
fr.insee
- j6qdqoen--1
- 0.1.0
+ j6qdqoen-1
+ 1
fr.insee
- CA-j6qdqoen--1
- 0.1.0
+ CA-j6qdqoen-1
+ 1
Category
1
fr.insee
- j6qdqoen-0
- 0.1.0
+ j6qdqoen-2
+ 1
fr.insee
- CA-j6qdqoen-0
- 0.1.0
+ CA-j6qdqoen-2
+ 1
Category
2
fr.insee
- j6qdqoen-1
- 0.1.0
+ j6qdqoen-3
+ 1
fr.insee
- CA-j6qdqoen-1
- 0.1.0
+ CA-j6qdqoen-3
+ 1
Category
3
fr.insee
- j6qdqoen-2
- 0.1.0
+ j6qdqoen-4
+ 1
fr.insee
- CA-j6qdqoen-2
- 0.1.0
+ CA-j6qdqoen-4
+ 1
Category
4
@@ -6442,7 +6454,7 @@
fr.insee
j4nwo00f
- 0.1.0
+ 1
State
@@ -6452,156 +6464,156 @@
fr.insee
- j4nwo00f--1
- 0.1.0
+ j4nwo00f-1
+ 1
fr.insee
- CA-j4nwo00f--1
- 0.1.0
+ CA-j4nwo00f-1
+ 1
Category
1
fr.insee
- j4nwo00f-0
- 0.1.0
+ j4nwo00f-2
+ 1
fr.insee
- CA-j4nwo00f-0
- 0.1.0
+ CA-j4nwo00f-2
+ 1
Category
2
fr.insee
- j4nwo00f-1
- 0.1.0
+ j4nwo00f-3
+ 1
fr.insee
- CA-j4nwo00f-1
- 0.1.0
+ CA-j4nwo00f-3
+ 1
Category
3
fr.insee
- j4nwo00f-2
- 0.1.0
+ j4nwo00f-4
+ 1
fr.insee
- CA-j4nwo00f-2
- 0.1.0
+ CA-j4nwo00f-4
+ 1
Category
4
fr.insee
- j4nwo00f-3
- 0.1.0
+ j4nwo00f-5
+ 1
fr.insee
- CA-j4nwo00f-3
- 0.1.0
+ CA-j4nwo00f-5
+ 1
Category
5
fr.insee
- j4nwo00f-4
- 0.1.0
+ j4nwo00f-6
+ 1
fr.insee
- CA-j4nwo00f-4
- 0.1.0
+ CA-j4nwo00f-6
+ 1
Category
6
fr.insee
- j4nwo00f-5
- 0.1.0
+ j4nwo00f-7
+ 1
fr.insee
- CA-j4nwo00f-5
- 0.1.0
+ CA-j4nwo00f-7
+ 1
Category
7
fr.insee
- j4nwo00f-6
- 0.1.0
+ j4nwo00f-8
+ 1
fr.insee
- CA-j4nwo00f-6
- 0.1.0
+ CA-j4nwo00f-8
+ 1
Category
8
fr.insee
- j4nwo00f-7
- 0.1.0
+ j4nwo00f-9
+ 1
fr.insee
- CA-j4nwo00f-7
- 0.1.0
+ CA-j4nwo00f-9
+ 1
Category
9
fr.insee
- j4nwo00f-8
- 0.1.0
+ j4nwo00f-10
+ 1
fr.insee
- CA-j4nwo00f-8
- 0.1.0
+ CA-j4nwo00f-10
+ 1
Category
10
fr.insee
- j4nwo00f-9
- 0.1.0
+ j4nwo00f-11
+ 1
fr.insee
- CA-j4nwo00f-9
- 0.1.0
+ CA-j4nwo00f-11
+ 1
Category
11
fr.insee
- j4nwo00f-10
- 0.1.0
+ j4nwo00f-12
+ 1
fr.insee
- CA-j4nwo00f-10
- 0.1.0
+ CA-j4nwo00f-12
+ 1
Category
12
fr.insee
- j4nwo00f-11
- 0.1.0
+ j4nwo00f-13
+ 1
fr.insee
- CA-j4nwo00f-11
- 0.1.0
+ CA-j4nwo00f-13
+ 1
Category
13
@@ -6610,7 +6622,7 @@
fr.insee
j335cu3c
- 0.1.0
+ 1
ANIMALS
@@ -6620,48 +6632,48 @@
fr.insee
- j335cu3c--1
- 0.1.0
+ j335cu3c-1
+ 1
fr.insee
- CA-j335cu3c--1
- 0.1.0
+ CA-j335cu3c-1
+ 1
Category
1
fr.insee
- j335cu3c-0
- 0.1.0
+ j335cu3c-2
+ 1
fr.insee
- CA-j335cu3c-0
- 0.1.0
+ CA-j335cu3c-2
+ 1
Category
2
fr.insee
- j335cu3c-1
- 0.1.0
+ j335cu3c-3
+ 1
fr.insee
- CA-j335cu3c-1
- 0.1.0
+ CA-j335cu3c-3
+ 1
Category
3
fr.insee
- j335cu3c-2
- 0.1.0
+ j335cu3c-4
+ 1
fr.insee
- CA-j335cu3c-2
- 0.1.0
+ CA-j335cu3c-4
+ 1
Category
4
@@ -6670,7 +6682,7 @@
fr.insee
j6p2mvca
- 0.1.0
+ 1
Flavours
@@ -6680,48 +6692,48 @@
fr.insee
- j6p2mvca--1
- 0.1.0
+ j6p2mvca-1
+ 1
fr.insee
- CA-j6p2mvca--1
- 0.1.0
+ CA-j6p2mvca-1
+ 1
Category
1
fr.insee
- j6p2mvca-0
- 0.1.0
+ j6p2mvca-2
+ 1
fr.insee
- CA-j6p2mvca-0
- 0.1.0
+ CA-j6p2mvca-2
+ 1
Category
2
fr.insee
- j6p2mvca-1
- 0.1.0
+ j6p2mvca-3
+ 1
fr.insee
- CA-j6p2mvca-1
- 0.1.0
+ CA-j6p2mvca-3
+ 1
Category
3
fr.insee
- j6p2mvca-2
- 0.1.0
+ j6p2mvca-4
+ 1
fr.insee
- CA-j6p2mvca-2
- 0.1.0
+ CA-j6p2mvca-4
+ 1
Category
4
@@ -6730,7 +6742,7 @@
fr.insee
jbdxh138
- 0.1.0
+ 1
YESNO
@@ -6740,24 +6752,24 @@
fr.insee
- jbdxh138--1
- 0.1.0
+ jbdxh138-1
+ 1
fr.insee
- CA-jbdxh138--1
- 0.1.0
+ CA-jbdxh138-1
+ 1
Category
1
fr.insee
- jbdxh138-0
- 0.1.0
+ jbdxh138-2
+ 1
fr.insee
- CA-jbdxh138-0
- 0.1.0
+ CA-jbdxh138-2
+ 1
Category
0
@@ -6766,7 +6778,7 @@
fr.insee
j6qeytgc
- 0.1.0
+ 1
NUCLEAR_CHARACTERS
@@ -6776,48 +6788,48 @@
fr.insee
- j6qeytgc--1
- 0.1.0
+ j6qeytgc-1
+ 1
fr.insee
- CA-j6qeytgc--1
- 0.1.0
+ CA-j6qeytgc-1
+ 1
Category
1
fr.insee
- j6qeytgc-0
- 0.1.0
+ j6qeytgc-2
+ 1
fr.insee
- CA-j6qeytgc-0
- 0.1.0
+ CA-j6qeytgc-2
+ 1
Category
2
fr.insee
- j6qeytgc-1
- 0.1.0
+ j6qeytgc-3
+ 1
fr.insee
- CA-j6qeytgc-1
- 0.1.0
+ CA-j6qeytgc-3
+ 1
Category
3
fr.insee
- j6qeytgc-2
- 0.1.0
+ j6qeytgc-4
+ 1
fr.insee
- CA-j6qeytgc-2
- 0.1.0
+ CA-j6qeytgc-4
+ 1
Category
4
@@ -6826,7 +6838,7 @@
fr.insee
j6z087mq
- 0.1.0
+ 1
BIRTH_CHARACTER
@@ -6836,60 +6848,60 @@
fr.insee
- j6z087mq--1
- 0.1.0
+ j6z087mq-1
+ 1
fr.insee
- CA-j6z087mq--1
- 0.1.0
+ CA-j6z087mq-1
+ 1
Category
1
fr.insee
- j6z087mq-0
- 0.1.0
+ j6z087mq-2
+ 1
fr.insee
- CA-j6z087mq-0
- 0.1.0
+ CA-j6z087mq-2
+ 1
Category
2
fr.insee
- j6z087mq-1
- 0.1.0
+ j6z087mq-3
+ 1
fr.insee
- CA-j6z087mq-1
- 0.1.0
+ CA-j6z087mq-3
+ 1
Category
3
fr.insee
- j6z087mq-2
- 0.1.0
+ j6z087mq-4
+ 1
fr.insee
- CA-j6z087mq-2
- 0.1.0
+ CA-j6z087mq-4
+ 1
Category
4
fr.insee
- j6z087mq-3
- 0.1.0
+ j6z087mq-5
+ 1
fr.insee
- CA-j6z087mq-3
- 0.1.0
+ CA-j6z087mq-5
+ 1
Category
5
@@ -6898,7 +6910,7 @@
fr.insee
jbdxricm
- 0.1.0
+ 1
CITY_BIRTH
@@ -6908,60 +6920,60 @@
fr.insee
- jbdxricm--1
- 0.1.0
+ jbdxricm-1
+ 1
fr.insee
- CA-jbdxricm--1
- 0.1.0
+ CA-jbdxricm-1
+ 1
Category
1
fr.insee
- jbdxricm-0
- 0.1.0
+ jbdxricm-2
+ 1
fr.insee
- CA-jbdxricm-0
- 0.1.0
+ CA-jbdxricm-2
+ 1
Category
2
fr.insee
- jbdxricm-1
- 0.1.0
+ jbdxricm-3
+ 1
fr.insee
- CA-jbdxricm-1
- 0.1.0
+ CA-jbdxricm-3
+ 1
Category
3
fr.insee
- jbdxricm-2
- 0.1.0
+ jbdxricm-4
+ 1
fr.insee
- CA-jbdxricm-2
- 0.1.0
+ CA-jbdxricm-4
+ 1
Category
4
fr.insee
- jbdxricm-3
- 0.1.0
+ jbdxricm-5
+ 1
fr.insee
- CA-jbdxricm-3
- 0.1.0
+ CA-jbdxricm-5
+ 1
Category
5
@@ -6970,7 +6982,7 @@
fr.insee
j4nwh16i
- 0.1.0
+ 1
Products
@@ -6980,35 +6992,35 @@
fr.insee
- j4nwh16i--1
- 0.1.0
+ j4nwh16i-1
+ 1
fr.insee
- CA-j4nwh16i--1
- 0.1.0
+ CA-j4nwh16i-1
+ 1
Category
A
fr.insee
- j4nwh16i-0
- 0.1.0
+ j4nwh16i-2
+ 1
fr.insee
- CA-j4nwh16i-0
- 0.1.0
+ CA-j4nwh16i-2
+ 1
Category
A1
fr.insee
- j4nwh16i-1
- 0.1.0
+ j4nwh16i-3
+ 1
fr.insee
- CA-j4nwh16i-1
- 0.1.0
+ CA-j4nwh16i-3
+ 1
Category
A2
@@ -7016,47 +7028,47 @@
fr.insee
- j4nwh16i-2
- 0.1.0
+ j4nwh16i-4
+ 1
fr.insee
- CA-j4nwh16i-2
- 0.1.0
+ CA-j4nwh16i-4
+ 1
Category
B
fr.insee
- j4nwh16i-3
- 0.1.0
+ j4nwh16i-5
+ 1
fr.insee
- CA-j4nwh16i-3
- 0.1.0
+ CA-j4nwh16i-5
+ 1
Category
B1
fr.insee
- j4nwh16i-4
- 0.1.0
+ j4nwh16i-6
+ 1
fr.insee
- CA-j4nwh16i-4
- 0.1.0
+ CA-j4nwh16i-6
+ 1
Category
B2
fr.insee
- j4nwh16i-5
- 0.1.0
+ j4nwh16i-7
+ 1
fr.insee
- CA-j4nwh16i-5
- 0.1.0
+ CA-j4nwh16i-7
+ 1
Category
B3
@@ -7064,23 +7076,23 @@
fr.insee
- j4nwh16i-6
- 0.1.0
+ j4nwh16i-8
+ 1
fr.insee
- CA-j4nwh16i-6
- 0.1.0
+ CA-j4nwh16i-8
+ 1
Category
C
fr.insee
- j4nwh16i-7
- 0.1.0
+ j4nwh16i-9
+ 1
fr.insee
- CA-j4nwh16i-7
- 0.1.0
+ CA-j4nwh16i-9
+ 1
Category
C1
@@ -7088,12 +7100,12 @@
fr.insee
- j4nwh16i-8
- 0.1.0
+ j4nwh16i-10
+ 1
fr.insee
- CA-j4nwh16i-8
- 0.1.0
+ CA-j4nwh16i-10
+ 1
Category
D
@@ -7102,7 +7114,7 @@
fr.insee
j77dav9b
- 0.1.0
+ 1
Clownings
@@ -7112,48 +7124,48 @@
fr.insee
- j77dav9b--1
- 0.1.0
+ j77dav9b-1
+ 1
fr.insee
- CA-j77dav9b--1
- 0.1.0
+ CA-j77dav9b-1
+ 1
Category
1
fr.insee
- j77dav9b-0
- 0.1.0
+ j77dav9b-2
+ 1
fr.insee
- CA-j77dav9b-0
- 0.1.0
+ CA-j77dav9b-2
+ 1
Category
2
fr.insee
- j77dav9b-1
- 0.1.0
+ j77dav9b-3
+ 1
fr.insee
- CA-j77dav9b-1
- 0.1.0
+ CA-j77dav9b-3
+ 1
Category
3
fr.insee
- j77dav9b-2
- 0.1.0
+ j77dav9b-4
+ 1
fr.insee
- CA-j77dav9b-2
- 0.1.0
+ CA-j77dav9b-4
+ 1
Category
4
@@ -7162,7 +7174,7 @@
fr.insee
jbdyh6b5
- 0.1.0
+ 1
Clowning_Characters
@@ -7172,48 +7184,48 @@
fr.insee
- jbdyh6b5--1
- 0.1.0
+ jbdyh6b5-1
+ 1
fr.insee
- CA-jbdyh6b5--1
- 0.1.0
+ CA-jbdyh6b5-1
+ 1
Category
1
fr.insee
- jbdyh6b5-0
- 0.1.0
+ jbdyh6b5-2
+ 1
fr.insee
- CA-jbdyh6b5-0
- 0.1.0
+ CA-jbdyh6b5-2
+ 1
Category
2
fr.insee
- jbdyh6b5-1
- 0.1.0
+ jbdyh6b5-3
+ 1
fr.insee
- CA-jbdyh6b5-1
- 0.1.0
+ CA-jbdyh6b5-3
+ 1
Category
3
fr.insee
- jbdyh6b5-2
- 0.1.0
+ jbdyh6b5-4
+ 1
fr.insee
- CA-jbdyh6b5-2
- 0.1.0
+ CA-jbdyh6b5-4
+ 1
Category
4
@@ -7222,7 +7234,7 @@
fr.insee
j6p2kivg
- 0.1.0
+ 1
Means of transport
@@ -7232,48 +7244,48 @@
fr.insee
- j6p2kivg--1
- 0.1.0
+ j6p2kivg-1
+ 1
fr.insee
- CA-j6p2kivg--1
- 0.1.0
+ CA-j6p2kivg-1
+ 1
Category
1
fr.insee
- j6p2kivg-0
- 0.1.0
+ j6p2kivg-2
+ 1
fr.insee
- CA-j6p2kivg-0
- 0.1.0
+ CA-j6p2kivg-2
+ 1
Category
2
fr.insee
- j6p2kivg-1
- 0.1.0
+ j6p2kivg-3
+ 1
fr.insee
- CA-j6p2kivg-1
- 0.1.0
+ CA-j6p2kivg-3
+ 1
Category
3
fr.insee
- j6p2kivg-2
- 0.1.0
+ j6p2kivg-4
+ 1
fr.insee
- CA-j6p2kivg-2
- 0.1.0
+ CA-j6p2kivg-4
+ 1
Category
4
@@ -7282,7 +7294,7 @@
fr.insee
jbdye1wa
- 0.1.0
+ 1
Country
@@ -7292,72 +7304,72 @@
fr.insee
- jbdye1wa--1
- 0.1.0
+ jbdye1wa-1
+ 1
fr.insee
- CA-jbdye1wa--1
- 0.1.0
+ CA-jbdye1wa-1
+ 1
Category
1
fr.insee
- jbdye1wa-0
- 0.1.0
+ jbdye1wa-2
+ 1
fr.insee
- CA-jbdye1wa-0
- 0.1.0
+ CA-jbdye1wa-2
+ 1
Category
2
fr.insee
- jbdye1wa-1
- 0.1.0
+ jbdye1wa-3
+ 1
fr.insee
- CA-jbdye1wa-1
- 0.1.0
+ CA-jbdye1wa-3
+ 1
Category
3
fr.insee
- jbdye1wa-2
- 0.1.0
+ jbdye1wa-4
+ 1
fr.insee
- CA-jbdye1wa-2
- 0.1.0
+ CA-jbdye1wa-4
+ 1
Category
4
fr.insee
- jbdye1wa-3
- 0.1.0
+ jbdye1wa-5
+ 1
fr.insee
- CA-jbdye1wa-3
- 0.1.0
+ CA-jbdye1wa-5
+ 1
Category
5
fr.insee
- jbdye1wa-4
- 0.1.0
+ jbdye1wa-6
+ 1
fr.insee
- CA-jbdye1wa-4
- 0.1.0
+ CA-jbdye1wa-6
+ 1
Category
6
@@ -7366,7 +7378,7 @@
fr.insee
j4nwc63q-secondDimension-fakeCL-1
- 0.1.0
+ 1
FAKE-CODELIST-j4nwc63q-secondDimension-fakeCL-1
@@ -7376,12 +7388,12 @@
fr.insee
- j4nwc63q-secondDimension-fakeCL-1--1
- 0.1.0
+ j4nwc63q-secondDimension-fakeCL-1-1
+ 1
fr.insee
- CA-j4nwc63q-secondDimension-fakeCL-1--1
- 0.1.0
+ CA-j4nwc63q-secondDimension-fakeCL-1-1
+ 1
Category
1
@@ -7390,7 +7402,7 @@
fr.insee
j4nw0rr6-secondDimension-fakeCL-1
- 0.1.0
+ 1
FAKE-CODELIST-j4nw0rr6-secondDimension-fakeCL-1
@@ -7400,24 +7412,24 @@
fr.insee
- j4nw0rr6-secondDimension-fakeCL-1--1
- 0.1.0
+ j4nw0rr6-secondDimension-fakeCL-1-1
+ 1
fr.insee
- CA-j4nw0rr6-secondDimension-fakeCL-1--1
- 0.1.0
+ CA-j4nw0rr6-secondDimension-fakeCL-1-1
+ 1
Category
1
fr.insee
- j4nw0rr6-secondDimension-fakeCL-1-0
- 0.1.0
+ j4nw0rr6-secondDimension-fakeCL-1-2
+ 1
fr.insee
- CA-j4nw0rr6-secondDimension-fakeCL-1-0
- 0.1.0
+ CA-j4nw0rr6-secondDimension-fakeCL-1-2
+ 1
Category
2
@@ -7426,7 +7438,7 @@
fr.insee
j6qg8rc6-secondDimension-fakeCL-1
- 0.1.0
+ 1
FAKE-CODELIST-j6qg8rc6-secondDimension-fakeCL-1
@@ -7436,24 +7448,24 @@
fr.insee
- j6qg8rc6-secondDimension-fakeCL-1--1
- 0.1.0
+ j6qg8rc6-secondDimension-fakeCL-1-1
+ 1
fr.insee
- CA-j6qg8rc6-secondDimension-fakeCL-1--1
- 0.1.0
+ CA-j6qg8rc6-secondDimension-fakeCL-1-1
+ 1
Category
1
fr.insee
- j6qg8rc6-secondDimension-fakeCL-1-0
- 0.1.0
+ j6qg8rc6-secondDimension-fakeCL-1-2
+ 1
fr.insee
- CA-j6qg8rc6-secondDimension-fakeCL-1-0
- 0.1.0
+ CA-j6qg8rc6-secondDimension-fakeCL-1-2
+ 1
Category
2
@@ -7462,7 +7474,7 @@
fr.insee
INSEE-COMMUN-CL-Booleen
- 0.1.0
+ 1
Booleen
@@ -7473,11 +7485,11 @@
fr.insee
INSEE-COMMUN-CL-Booleen-1
- 0.1.0
+ 1
fr.insee
INSEE-COMMUN-CA-Booleen-1
- 0.1.0
+ 1
Category
1
@@ -7486,231 +7498,348 @@
fr.insee
- VariableScheme-i6vwid
- 0.1.0
+ VariableScheme-i6vwi0
+ 1
Variable Scheme for the survey
+
+ fr.insee
+ jbcggtca
+ 1
+
+ SUM_EXPENSES
+
+
+ SUM_EXPENSES label
+
+
+ fr.insee
+ jbcggtca-VROP
+ 1
+
+
+
+ fr.insee
+ jbcggtca-GI
+ 1
+ GenerationInstruction
+
+
+ fr.insee
+ jbcggtca-GOP
+ 1
+ OutParameter
+
+
+ fr.insee
+ jbcggtca-VROP
+ 1
+ OutParameter
+
+
+
+
+
+
+
+ fr.insee
+ jbcggtex
+ 1
+
+ LAST_BROADCAST
+
+
+ LAST_BROADCAST label
+
+
fr.insee
jbcgfvir
- 0.1.0
+ 1
COMMENT
- COMMENT label
+ COMMENT label
fr.insee
j6p3dkx6-QOP-jbgdhaht
- 0.1.0
+ 1
OutParameter
fr.insee
j6p3dkx6
- 0.1.0
+ 1
QuestionItem
-
+
+
+
fr.insee
jbcgm0ip
- 0.1.0
+ 1
READY
- READY label
+ READY label
fr.insee
j6p0np9q-QOP-jbgd3set
- 0.1.0
+ 1
OutParameter
fr.insee
j6p0np9q
- 0.1.0
+ 1
QuestionItem
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbcgf11f
- 0.1.0
+ 1
PRODUCER
- PRODUCER label
+ PRODUCER label
fr.insee
j3343qhx-QOP-jbgd90cy
- 0.1.0
+ 1
OutParameter
fr.insee
j3343qhx
- 0.1.0
+ 1
QuestionItem
-
+
+
+
fr.insee
jbcgcy2x
- 0.1.0
+ 1
SEASON_NUMBER
- SEASON_NUMBER label
+ SEASON_NUMBER label
fr.insee
j6q9h8tj-QOP-jbgdjy8h
- 0.1.0
+ 1
OutParameter
fr.insee
j6q9h8tj
- 0.1.0
+ 1
QuestionItem
-
+
+
+
+ 0
+ 99
+
+ Decimal
+
+
fr.insee
jbcgbg33
- 0.1.0
+ 1
DATEFIRST
- DATEFIRST label
+ DATEFIRST label
fr.insee
j334cyqb-QOP-jbgdih2z
- 0.1.0
+ 1
OutParameter
fr.insee
j334cyqb
- 0.1.0
+ 1
QuestionItem
-
+
+
+ fr.insee
+ INSEE-COMMUN-MNR-DateTimedate-YYYY-MM-DD
+ 1
+ ManagedDateTimeRepresentation
+
+
fr.insee
jbcgieyw
- 0.1.0
+ 1
AUDIENCE_SHARE
- AUDIENCE_SHARE label
+ AUDIENCE_SHARE label
fr.insee
j6z06z1e-QOP-jbgddnrd
- 0.1.0
+ 1
OutParameter
fr.insee
j6z06z1e
- 0.1.0
+ 1
QuestionItem
-
+
+
+
+ 0
+ 99
+
+ Decimal
+
+
fr.insee
jbcgasbh
- 0.1.0
+ 1
CITY
- CITY label
+ CITY label
fr.insee
j3343clt-QOP-jbgdjdkn
- 0.1.0
+ 1
OutParameter
fr.insee
j3343clt
- 0.1.0
+ 1
QuestionItem
-
+
+
+
+ fr.insee
+ j334iumu
+ 1
+ CodeList
+
+
+
fr.insee
jbcg9yr6
- 0.1.0
+ 1
MAYOR
- MAYOR label
+ MAYOR label
fr.insee
j6qdfhvw-QOP-jbgd8ghp
- 0.1.0
+ 1
OutParameter
fr.insee
j6qdfhvw
- 0.1.0
+ 1
QuestionItem
-
+
+
+
+ fr.insee
+ j6qdqoen
+ 1
+ CodeList
+
+
+
fr.insee
jbcgpija
- 0.1.0
+ 1
STATE
- STATE label
+ STATE label
fr.insee
j4nw5cqz-QOP-jbgdkd7v
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw5cqz
- 0.1.0
+ 1
QuestionItem
-
+
+
+
+ fr.insee
+ j4nwo00f
+ 1
+ CodeList
+
+
+
fr.insee
jbdxewlq
- 0.1.0
+ 1
PET1
@@ -7720,21 +7849,34 @@
fr.insee
j334akov-QOP-jbgd8qmn
- 0.1.0
+ 1
OutParameter
fr.insee
j334akov
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbdxjmst
- 0.1.0
+ 1
PET2
@@ -7744,21 +7886,34 @@
fr.insee
j334akov-QOP-jbgd60vl
- 0.1.0
+ 1
OutParameter
fr.insee
j334akov
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbdxjuay
- 0.1.0
+ 1
PET3
@@ -7768,21 +7923,34 @@
fr.insee
j334akov-QOP-jbgda2jo
- 0.1.0
+ 1
OutParameter
fr.insee
j334akov
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbdxniuw
- 0.1.0
+ 1
PET4
@@ -7792,21 +7960,34 @@
fr.insee
j334akov-QOP-jbgdfssy
- 0.1.0
+ 1
OutParameter
fr.insee
j334akov
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbdxtl1d
- 0.1.0
+ 1
ICE_FLAVOUR1
@@ -7816,21 +7997,30 @@
fr.insee
j6p29i81-QOP-jbgdb3jx
- 0.1.0
+ 1
OutParameter
fr.insee
j6p29i81
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxh138
+ 1
+ CodeList
+
+
+
fr.insee
jbdxvai9
- 0.1.0
+ 1
ICE_FLAVOUR2
@@ -7840,21 +8030,30 @@
fr.insee
j6p29i81-QOP-jbgdb61k
- 0.1.0
+ 1
OutParameter
fr.insee
j6p29i81
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxh138
+ 1
+ CodeList
+
+
+
fr.insee
jbdxpltw
- 0.1.0
+ 1
ICE_FLAVOUR3
@@ -7864,21 +8063,30 @@
fr.insee
j6p29i81-QOP-jbgdl3kc
- 0.1.0
+ 1
OutParameter
fr.insee
j6p29i81
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxh138
+ 1
+ CodeList
+
+
+
fr.insee
jbdxzx2x
- 0.1.0
+ 1
ICE_FLAVOUR4
@@ -7888,21 +8096,30 @@
fr.insee
j6p29i81-QOP-jbgdcobo
- 0.1.0
+ 1
OutParameter
fr.insee
j6p29i81
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxh138
+ 1
+ CodeList
+
+
+
fr.insee
jbdy4nhp
- 0.1.0
+ 1
NUCLEAR_CHARACTER1
@@ -7912,21 +8129,30 @@
fr.insee
j6qefnga-QOP-jbgd6p0k
- 0.1.0
+ 1
OutParameter
fr.insee
j6qefnga
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxh138
+ 1
+ CodeList
+
+
+
fr.insee
jbdxtanu
- 0.1.0
+ 1
NUCLEAR_CHARACTER2
@@ -7936,21 +8162,30 @@
fr.insee
j6qefnga-QOP-jbgd9ato
- 0.1.0
+ 1
OutParameter
fr.insee
j6qefnga
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxh138
+ 1
+ CodeList
+
+
+
fr.insee
jbdy25if
- 0.1.0
+ 1
NUCLEAR_CHARACTER3
@@ -7960,21 +8195,30 @@
fr.insee
j6qefnga-QOP-jbgd3e0p
- 0.1.0
+ 1
OutParameter
fr.insee
j6qefnga
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxh138
+ 1
+ CodeList
+
+
+
fr.insee
jbdxvta8
- 0.1.0
+ 1
NUCLEAR_CHARACTER4
@@ -7984,21 +8228,30 @@
fr.insee
j6qefnga-QOP-jbgdkxne
- 0.1.0
+ 1
OutParameter
fr.insee
j6qefnga
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxh138
+ 1
+ CodeList
+
+
+
fr.insee
jbdy3nh7
- 0.1.0
+ 1
BIRTH_CHARACTER1
@@ -8008,21 +8261,30 @@
fr.insee
j6yzoc6g-QOP-jbgd7fr6
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxricm
+ 1
+ CodeList
+
+
+
fr.insee
jbdy6lk3
- 0.1.0
+ 1
BIRTH_CHARACTER2
@@ -8032,21 +8294,30 @@
fr.insee
j6yzoc6g-QOP-jbgd5e9f
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxricm
+ 1
+ CodeList
+
+
+
fr.insee
jbdxsby0
- 0.1.0
+ 1
BIRTH_CHARACTER3
@@ -8056,21 +8327,30 @@
fr.insee
j6yzoc6g-QOP-jbgd912x
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxricm
+ 1
+ CodeList
+
+
+
fr.insee
jbdy7sra
- 0.1.0
+ 1
BIRTH_CHARACTER4
@@ -8080,21 +8360,30 @@
fr.insee
j6yzoc6g-QOP-jbgd6bdy
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxricm
+ 1
+ CodeList
+
+
+
fr.insee
jbdy2wyl
- 0.1.0
+ 1
BIRTH_CHARACTER5
@@ -8104,21 +8393,30 @@
fr.insee
j6yzoc6g-QOP-jbgddyry
- 0.1.0
+ 1
OutParameter
fr.insee
j6yzoc6g
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdxricm
+ 1
+ CodeList
+
+
+
fr.insee
jbgdnfk7
- 0.1.0
+ 1
PERCENTAGE_EXPENSES11
@@ -8128,23 +8426,30 @@
fr.insee
j4nwc63q-QOP-jbgde5yl
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgdje4w
- 0.1.0
+ 1
PERCENTAGE_EXPENSES21
@@ -8154,23 +8459,30 @@
fr.insee
j4nwc63q-QOP-jbgd2x2t
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgdlth7
- 0.1.0
+ 1
PERCENTAGE_EXPENSES31
@@ -8180,23 +8492,30 @@
fr.insee
j4nwc63q-QOP-jbgdjypz
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgdelbl
- 0.1.0
+ 1
PERCENTAGE_EXPENSES41
@@ -8206,23 +8525,30 @@
fr.insee
j4nwc63q-QOP-jbgdcftu
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgd95jq
- 0.1.0
+ 1
PERCENTAGE_EXPENSES51
@@ -8232,23 +8558,30 @@
fr.insee
j4nwc63q-QOP-jbgdiyfe
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgdadd9
- 0.1.0
+ 1
PERCENTAGE_EXPENSES61
@@ -8258,23 +8591,30 @@
fr.insee
j4nwc63q-QOP-jbgdj1wd
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgdlwzk
- 0.1.0
+ 1
PERCENTAGE_EXPENSES71
@@ -8284,23 +8624,30 @@
fr.insee
j4nwc63q-QOP-jbgddylk
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgdfz77
- 0.1.0
+ 1
PERCENTAGE_EXPENSES81
@@ -8310,23 +8657,30 @@
fr.insee
j4nwc63q-QOP-jbgd3jj6
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgdepx6
- 0.1.0
+ 1
PERCENTAGE_EXPENSES91
@@ -8336,23 +8690,30 @@
fr.insee
j4nwc63q-QOP-jbgd4w3k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgdepx7
- 0.1.0
+ 1
PERCENTAGE_EXPENSES101
@@ -8362,23 +8723,30 @@
fr.insee
j4nwc63q-QOP-jbgd4w4k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nwc63q
- 0.1.0
+ 1
QuestionGrid
- %
+
+ %
+
+ 0
+ 100
+
+ Decimal
+
fr.insee
jbgd9vqv
- 0.1.0
+ 1
CLOWNING11
@@ -8388,45 +8756,63 @@
fr.insee
j4nw0rr6-QOP-jbgd8tyr
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdyh6b5
+ 1
+ CodeList
+
+
+
fr.insee
jbgden0i
- 0.1.0
+ 1
CLOWNING21
- Loose the violin of his daughter playing poker-Clowning
+ Loose the violin of his daughter playing poker-Clowning
fr.insee
j4nw0rr6-QOP-jbgdep36
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdyh6b5
+ 1
+ CodeList
+
+
+
fr.insee
jbgdndju
- 0.1.0
+ 1
CLOWNING31
@@ -8436,21 +8822,30 @@
fr.insee
j4nw0rr6-QOP-jbgdjjgi
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdyh6b5
+ 1
+ CodeList
+
+
+
fr.insee
jbgdfwg9
- 0.1.0
+ 1
CLOWNING41
@@ -8460,21 +8855,30 @@
fr.insee
j4nw0rr6-QOP-jbgdgh6k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ fr.insee
+ jbdyh6b5
+ 1
+ CodeList
+
+
+
fr.insee
jbgdd3ky
- 0.1.0
+ 1
CLOWNING12
@@ -8484,45 +8888,49 @@
fr.insee
j4nw0rr6-QOP-jbgdit3o
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdm9lm
- 0.1.0
+ 1
CLOWNING22
- Loose the violin of his daughter playing poker-Remember?
+ Loose the violin of his daughter playing poker-Remember?
fr.insee
j4nw0rr6-QOP-jbgd366k
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdcdhv
- 0.1.0
+ 1
CLOWNING32
@@ -8532,21 +8940,23 @@
fr.insee
j4nw0rr6-QOP-jbgdax06
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdjlit
- 0.1.0
+ 1
CLOWNING42
@@ -8556,21 +8966,23 @@
fr.insee
j4nw0rr6-QOP-jbgdfo1j
- 0.1.0
+ 1
OutParameter
fr.insee
j4nw0rr6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgd1zxu
- 0.1.0
+ 1
TRAVEL11
@@ -8580,21 +8992,34 @@
fr.insee
j6p2lwuj-QOP-jbgd92mb
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd8lfs
- 0.1.0
+ 1
TRAVEL21
@@ -8604,21 +9029,34 @@
fr.insee
j6p2lwuj-QOP-jbgdgsat
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd56qo
- 0.1.0
+ 1
TRAVEL31
@@ -8628,21 +9066,34 @@
fr.insee
j6p2lwuj-QOP-jbgdaxk2
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd4wu8
- 0.1.0
+ 1
TRAVEL41
@@ -8652,21 +9103,34 @@
fr.insee
j6p2lwuj-QOP-jbgd7myn
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdak6h
- 0.1.0
+ 1
TRAVEL12
@@ -8676,21 +9140,34 @@
fr.insee
j6p2lwuj-QOP-jbgdnxkt
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdmsy4
- 0.1.0
+ 1
TRAVEL22
@@ -8700,21 +9177,34 @@
fr.insee
j6p2lwuj-QOP-jbgd3ef5
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd2zlu
- 0.1.0
+ 1
TRAVEL32
@@ -8724,21 +9214,34 @@
fr.insee
j6p2lwuj-QOP-jbgd8p1v
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd6v73
- 0.1.0
+ 1
TRAVEL42
@@ -8748,21 +9251,34 @@
fr.insee
j6p2lwuj-QOP-jbgdgm0c
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdf5fg
- 0.1.0
+ 1
TRAVEL13
@@ -8772,21 +9288,34 @@
fr.insee
j6p2lwuj-QOP-jbgdcppc
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd2xg0
- 0.1.0
+ 1
TRAVEL23
@@ -8796,21 +9325,34 @@
fr.insee
j6p2lwuj-QOP-jbgd4cm6
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdc06l
- 0.1.0
+ 1
TRAVEL33
@@ -8820,21 +9362,34 @@
fr.insee
j6p2lwuj-QOP-jbgdd2lo
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdb8i9
- 0.1.0
+ 1
TRAVEL43
@@ -8844,21 +9399,34 @@
fr.insee
j6p2lwuj-QOP-jbgdo0ay
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdhzve
- 0.1.0
+ 1
TRAVEL14
@@ -8868,21 +9436,34 @@
fr.insee
j6p2lwuj-QOP-jbgd4r2a
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd93ks
- 0.1.0
+ 1
TRAVEL24
@@ -8892,21 +9473,34 @@
fr.insee
j6p2lwuj-QOP-jbgdkfpq
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdfw7h
- 0.1.0
+ 1
TRAVEL34
@@ -8916,21 +9510,34 @@
fr.insee
j6p2lwuj-QOP-jbgd7u52
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdfavn
- 0.1.0
+ 1
TRAVEL44
@@ -8940,21 +9547,34 @@
fr.insee
j6p2lwuj-QOP-jbgdgfwl
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdc199
- 0.1.0
+ 1
TRAVEL15
@@ -8964,21 +9584,34 @@
fr.insee
j6p2lwuj-QOP-jbgd9cff
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdfqph
- 0.1.0
+ 1
TRAVEL25
@@ -8988,21 +9621,34 @@
fr.insee
j6p2lwuj-QOP-jbgddwsp
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd8r0n
- 0.1.0
+ 1
TRAVEL35
@@ -9012,21 +9658,34 @@
fr.insee
j6p2lwuj-QOP-jbgdncn8
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd3aqk
- 0.1.0
+ 1
TRAVEL45
@@ -9036,21 +9695,34 @@
fr.insee
j6p2lwuj-QOP-jbgdnz6b
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdltql
- 0.1.0
+ 1
TRAVEL16
@@ -9060,21 +9732,34 @@
fr.insee
j6p2lwuj-QOP-jbgdiva0
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd9um3
- 0.1.0
+ 1
TRAVEL26
@@ -9084,21 +9769,34 @@
fr.insee
j6p2lwuj-QOP-jbgd7dqf
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgddj7v
- 0.1.0
+ 1
TRAVEL36
@@ -9108,21 +9806,34 @@
fr.insee
j6p2lwuj-QOP-jbgdnous
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgdb4ym
- 0.1.0
+ 1
TRAVEL46
@@ -9132,21 +9843,34 @@
fr.insee
j6p2lwuj-QOP-jbgdkfcz
- 0.1.0
+ 1
OutParameter
fr.insee
j6p2lwuj
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+
+
+ fr.insee
+ INSEE-COMMUN-CL-Booleen-1
+ 1
+ Code
+
+
+
+
+
fr.insee
jbgd3fkz
- 0.1.0
+ 1
FAVOURITE_CHARACTERS11
@@ -9156,21 +9880,23 @@
fr.insee
j6qg8rc6-QOP-jbgdl5jb
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdf2md
- 0.1.0
+ 1
FAVOURITE_CHARACTERS21
@@ -9180,21 +9906,23 @@
fr.insee
j6qg8rc6-QOP-jbgd8lwo
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdfle1
- 0.1.0
+ 1
FAVOURITE_CHARACTERS31
@@ -9204,21 +9932,23 @@
fr.insee
j6qg8rc6-QOP-jbgdbfag
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdix8x
- 0.1.0
+ 1
FAVOURITE_CHARACTERS41
@@ -9228,21 +9958,23 @@
fr.insee
j6qg8rc6-QOP-jbgdlgja
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgd782k
- 0.1.0
+ 1
FAVOURITE_CHARACTERS51
@@ -9252,21 +9984,23 @@
fr.insee
j6qg8rc6-QOP-jbgd745y
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgd68rf
- 0.1.0
+ 1
FAVOURITE_CHARACTERS61
@@ -9276,21 +10010,23 @@
fr.insee
j6qg8rc6-QOP-jbgdjkts
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdfoj4
- 0.1.0
+ 1
FAVOURITE_CHARACTERS71
@@ -9300,21 +10036,23 @@
fr.insee
j6qg8rc6-QOP-jbgdcax7
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdb116
- 0.1.0
+ 1
FAVOURITE_CHARACTERS81
@@ -9324,21 +10062,23 @@
fr.insee
j6qg8rc6-QOP-jbgdjye1
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgd7w5p
- 0.1.0
+ 1
FAVOURITE_CHARACTERS91
@@ -9348,21 +10088,23 @@
fr.insee
j6qg8rc6-QOP-jbgd5jet
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgd8rj2
- 0.1.0
+ 1
FAVOURITE_CHARACTERS101
@@ -9372,21 +10114,23 @@
fr.insee
j6qg8rc6-QOP-jbgdjw90
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
fr.insee
jbgdidnp
- 0.1.0
+ 1
FAVOURITE_CHARACTERS12
@@ -9396,21 +10140,29 @@
fr.insee
j6qg8rc6-QOP-jbgdfndq
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgd47wz
- 0.1.0
+ 1
FAVOURITE_CHARACTERS22
@@ -9420,21 +10172,29 @@
fr.insee
j6qg8rc6-QOP-jbgd7osi
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgdj2nn
- 0.1.0
+ 1
FAVOURITE_CHARACTERS32
@@ -9444,21 +10204,29 @@
fr.insee
j6qg8rc6-QOP-jbgd7bnw
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgd2ipx
- 0.1.0
+ 1
FAVOURITE_CHARACTERS42
@@ -9468,21 +10236,29 @@
fr.insee
j6qg8rc6-QOP-jbgd9k71
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgd4pe3
- 0.1.0
+ 1
FAVOURITE_CHARACTERS52
@@ -9492,21 +10268,29 @@
fr.insee
j6qg8rc6-QOP-jbgdimks
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgdjgb1
- 0.1.0
+ 1
FAVOURITE_CHARACTERS62
@@ -9516,21 +10300,29 @@
fr.insee
j6qg8rc6-QOP-jbgdjquz
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgdb5c1
- 0.1.0
+ 1
FAVOURITE_CHARACTERS72
@@ -9540,21 +10332,29 @@
fr.insee
j6qg8rc6-QOP-jbgdd2w3
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgdju9y
- 0.1.0
+ 1
FAVOURITE_CHARACTERS82
@@ -9564,21 +10364,29 @@
fr.insee
j6qg8rc6-QOP-jbgdkosc
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgdatyx
- 0.1.0
+ 1
FAVOURITE_CHARACTERS92
@@ -9588,21 +10396,29 @@
fr.insee
j6qg8rc6-QOP-jbgdk0x4
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbgdi1dt
- 0.1.0
+ 1
FAVOURITE_CHARACTERS102
@@ -9612,96 +10428,193 @@
fr.insee
j6qg8rc6-QOP-jbgd2wgf
- 0.1.0
+ 1
OutParameter
fr.insee
j6qg8rc6
- 0.1.0
+ 1
QuestionGrid
-
+
+
+
+ 0
+ 120
+
+ Decimal
+
+
fr.insee
jbcggt4x
- 0.1.0
+ 1
SURVEY_COMMENT
- SURVEY_COMMENT label
+ SURVEY_COMMENT label
fr.insee
j6z0z3us-QOP-jbgd6m6e
- 0.1.0
+ 1
OutParameter
fr.insee
j6z0z3us
- 0.1.0
+ 1
QuestionItem
-
-
-
- fr.insee
- jbcggtca
- 0.1.0
-
- SUM_EXPENSES
-
-
- SUM_EXPENSES label
-
-
- fr.insee
- jbcggtca-VROP
- 0.1.0
-
-
- fr.insee
- jbcggtca-GI
- 0.1.0
- GenerationInstruction
-
-
- fr.insee
- jbcggtca-GOP
- 0.1.0
- OutParameter
-
-
- fr.insee
- jbcggtca-VROP
- 0.1.0
- OutParameter
-
-
-
-
+
-
- fr.insee
- jbcggtex
- 0.1.0
-
- LAST_BROADCAST
-
-
- LAST_BROADCAST label
-
-
+
+ fr.insee
+ j6qg8rc6-gp
+ 1
+
+
+ fr.insee
+ j6qg8rc6
+ 1
+ QuestionGrid
+
+
+ TableLoop
+
+ FAVOURITE_CHARACTERS
+
+
+ fr.insee
+ jbgd3fkz
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdf2md
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdfle1
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdix8x
+ 1
+ Variable
+
+
+ fr.insee
+ jbgd782k
+ 1
+ Variable
+
+
+ fr.insee
+ jbgd68rf
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdfoj4
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdb116
+ 1
+ Variable
+
+
+ fr.insee
+ jbgd7w5p
+ 1
+ Variable
+
+
+ fr.insee
+ jbgd8rj2
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdidnp
+ 1
+ Variable
+
+
+ fr.insee
+ jbgd47wz
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdj2nn
+ 1
+ Variable
+
+
+ fr.insee
+ jbgd2ipx
+ 1
+ Variable
+
+
+ fr.insee
+ jbgd4pe3
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdjgb1
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdb5c1
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdju9y
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdatyx
+ 1
+ Variable
+
+
+ fr.insee
+ jbgdi1dt
+ 1
+ Variable
+
+
fr.insee
INSEE-SIMPSONS-PIS-1
- 0.1.0
+ 1
SIMPSONS
@@ -9711,66 +10624,66 @@
fr.insee
jbcggtca-GI
- 0.1.0
-
+ 1
+
fr.insee
jbgdnfk7
- 0.1.0
+ 1
Variable
fr.insee
jbgdje4w
- 0.1.0
+ 1
Variable
fr.insee
jbgdlth7
- 0.1.0
+ 1
Variable
fr.insee
jbgdelbl
- 0.1.0
+ 1
Variable
fr.insee
jbgd95jq
- 0.1.0
+ 1
Variable
fr.insee
jbgdadd9
- 0.1.0
+ 1
Variable
fr.insee
jbgdlwzk
- 0.1.0
+ 1
Variable
fr.insee
jbgdfz77
- 0.1.0
+ 1
Variable
fr.insee
jbgdepx6
- 0.1.0
+ 1
Variable
fr.insee
jbgdepx7
- 0.1.0
+ 1
Variable
@@ -9779,7 +10692,7 @@
fr.insee
jbcggtca-IP-1
- 0.1.0
+ 1
PERCENTAGE_EXPENSES11
@@ -9787,7 +10700,7 @@
fr.insee
jbcggtca-IP-2
- 0.1.0
+ 1
PERCENTAGE_EXPENSES21
@@ -9795,7 +10708,7 @@
fr.insee
jbcggtca-IP-3
- 0.1.0
+ 1
PERCENTAGE_EXPENSES31
@@ -9803,7 +10716,7 @@
fr.insee
jbcggtca-IP-4
- 0.1.0
+ 1
PERCENTAGE_EXPENSES41
@@ -9811,7 +10724,7 @@
fr.insee
jbcggtca-IP-5
- 0.1.0
+ 1
PERCENTAGE_EXPENSES51
@@ -9819,7 +10732,7 @@
fr.insee
jbcggtca-IP-6
- 0.1.0
+ 1
PERCENTAGE_EXPENSES61
@@ -9827,7 +10740,7 @@
fr.insee
jbcggtca-IP-7
- 0.1.0
+ 1
PERCENTAGE_EXPENSES71
@@ -9835,7 +10748,7 @@
fr.insee
jbcggtca-IP-8
- 0.1.0
+ 1
PERCENTAGE_EXPENSES81
@@ -9843,7 +10756,7 @@
fr.insee
jbcggtca-IP-9
- 0.1.0
+ 1
PERCENTAGE_EXPENSES91
@@ -9851,7 +10764,7 @@
fr.insee
jbcggtca-IP-10
- 0.1.0
+ 1
PERCENTAGE_EXPENSES101
@@ -9859,19 +10772,19 @@
fr.insee
jbcggtca-GOP
- 0.1.0
+ 1
fr.insee
j4nwc63q-QOP-jbgde5yl
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-1
- 0.1.0
+ 1
InParameter
@@ -9879,13 +10792,13 @@
fr.insee
j4nwc63q-QOP-jbgd2x2t
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-2
- 0.1.0
+ 1
InParameter
@@ -9893,13 +10806,13 @@
fr.insee
j4nwc63q-QOP-jbgdjypz
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-3
- 0.1.0
+ 1
InParameter
@@ -9907,13 +10820,13 @@
fr.insee
j4nwc63q-QOP-jbgdcftu
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-4
- 0.1.0
+ 1
InParameter
@@ -9921,13 +10834,13 @@
fr.insee
j4nwc63q-QOP-jbgdiyfe
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-5
- 0.1.0
+ 1
InParameter
@@ -9935,13 +10848,13 @@
fr.insee
j4nwc63q-QOP-jbgdj1wd
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-6
- 0.1.0
+ 1
InParameter
@@ -9949,13 +10862,13 @@
fr.insee
j4nwc63q-QOP-jbgddylk
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-7
- 0.1.0
+ 1
InParameter
@@ -9963,13 +10876,13 @@
fr.insee
j4nwc63q-QOP-jbgd3jj6
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-8
- 0.1.0
+ 1
InParameter
@@ -9977,13 +10890,13 @@
fr.insee
j4nwc63q-QOP-jbgd4w3k
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-9
- 0.1.0
+ 1
InParameter
@@ -9991,26 +10904,26 @@
fr.insee
j4nwc63q-QOP-jbgd4w4k
- 0.1.0
+ 1
OutParameter
fr.insee
jbcggtca-IP-10
- 0.1.0
+ 1
InParameter
- number(if (jbcggtca-IP-1='') then '0' else jbcggtca-IP-1) + number(if (jbcggtca-IP-2='') then '0' else jbcggtca-IP-2) + number(if (jbcggtca-IP-3='') then '0' else jbcggtca-IP-3) +
- number(if (jbcggtca-IP-4='') then '0' else jbcggtca-IP-4) + number(if (jbcggtca-IP-5='') then '0' else jbcggtca-IP-5) + number(if (jbcggtca-IP-6='') then '0' else jbcggtca-IP-6) +
- number(if (jbcggtca-IP-7='') then '0' else jbcggtca-IP-7) + number(if (jbcggtca-IP-8='') then '0' else jbcggtca-IP-8) + number(if (jbcggtca-IP-9='') then '0' else jbcggtca-IP-9) +
- number(if (jbcggtca-IP-10='') then '0' else jbcggtca-IP-10)
+ number(if (jbcggtca-IP-1='') then '0' else jbcggtca-IP-1) + number(if (jbcggtca-IP-2='') then '0' else jbcggtca-IP-2) + number(if (jbcggtca-IP-3='') then '0' else jbcggtca-IP-3)+
+ number(if (jbcggtca-IP-4='') then '0' else jbcggtca-IP-4)+ number(if (jbcggtca-IP-5='') then '0' else jbcggtca-IP-5)+ number(if (jbcggtca-IP-6='') then '0' else jbcggtca-IP-6)+
+ number(if (jbcggtca-IP-7='') then '0' else jbcggtca-IP-7)+ number(if (jbcggtca-IP-8='') then '0' else jbcggtca-IP-8)+ number(if (jbcggtca-IP-9='') then '0' else jbcggtca-IP-9)+
+ number(if (jbcggtca-IP-10='') then '0' else jbcggtca-IP-10)
fr.insee
- Sequence-i6vwid
- 0.1.0
+ Sequence-i6vwi0
+ 1
Sequence
@@ -10018,7 +10931,7 @@
fr.insee
INSEE-SIMPSONS-MRS
- 0.1.0
+ 1
Liste de formats numériques et dates de
l'enquête
@@ -10026,56 +10939,63 @@
fr.insee
- INSEE-COMMUN-MNR-DateTimedate
- 0.1.0
- jj/mm/aaaa
- date
+ INSEE-COMMUN-MNR-DateTimedate-YYYY-MM-DD
+ 1
+ YYYY-MM-DD
+ date
+
+ 1900-01-01
+ format-date(current-date(),'[Y0001]-[M01]-[D01]')
+
-
+
fr.insee
- StudyUnit-i6vwid
- 0.1.0
+ StudyUnit-i6vwi0
+ 1
fr.insee
- DataCollection-i6vwid
- 0.1.0
+ DataCollection-i6vwi0
+ 1
fr.insee
- QuestionScheme-i6vwid
- 0.1.0
+ QuestionScheme-i6vwi0
+ 1
QuestionScheme
fr.insee
- ControlConstructScheme-i6vwid
- 0.1.0
+ ControlConstructScheme-i6vwi0
+ 1
ControlConstructScheme
fr.insee
- InterviewerInstructionScheme-i6vwid
- 0.1.0
+ InterviewerInstructionScheme-i6vwi0
+ 1
InterviewerInstructionScheme
fr.insee
- InstrumentScheme-i6vwid
- 0.1.0
-
+ InstrumentScheme-i6vwi0
+ 1
+
fr.insee
- Instrument-i6vwid
- 0.1.0
+ Instrument-i6vwi0
+ 1
+
+ SIMPSONS
+
Questionnaire SIMPSONS questionnaire
A définir
fr.insee
- Sequence-i6vwid
- 0.1.0
+ Sequence-i6vwi0
+ 1
Sequence
diff --git a/questionnaires/simpsons/parameters.xml b/questionnaires/simpsons/parameters.xml
index f5ce07621..cfa8ce1c8 100644
--- a/questionnaires/simpsons/parameters.xml
+++ b/questionnaires/simpsons/parameters.xml
@@ -1,53 +1,117 @@
-
-
-
-
- fr
- en
-
-
- 1
-
- 0
-
-
-
-
-
-
-
- household
-
- module
-
-
-
-
- N
-
- I
- -
-
-
-
-
-
- ➡
- N
-
- 1
- .
-
-
- ➡
- N
-
- 1
- .
-
-
-
-
- 7
-
-
\ No newline at end of file
+
+
+
+
+
+
+ default
+
+ test
+
+
+ fr
+ en
+
+
+
+ false
+
+
+
+ false
+ false
+
+
+
+ false
+ false
+ false
+ 7
+ ,
+
+
+
+
+
+ 0
+ 1
+
+
+
+ 15
+
+
+
+
+
+ optical
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+ module
+
+
+
+
+
+
+
+ false
+
+
+
+ I
+
+ -
+
+
+
+
+
+
+
+
+ ➡
+
+ false
+
+
+
+ 1
+
+ .
+
+
+
+
+ ➡
+ false
+
+ 1
+ .
+
+
+
+
+
+
diff --git a/src/main/java/fr/insee/eno/Constants.java b/src/main/java/fr/insee/eno/Constants.java
index 003028fbf..135222fac 100644
--- a/src/main/java/fr/insee/eno/Constants.java
+++ b/src/main/java/fr/insee/eno/Constants.java
@@ -17,81 +17,103 @@
*
*/
public final class Constants {
-
-
+
+
private static final Logger logger = LoggerFactory.getLogger(Constants.class);
private Constants() {
-
}
-
+
// ---------- Core resources: references to XSL, XML, etc. resources used to generate a questionnaire
-
+
// ----- Folders
public static final String UTIL_FOLDER_PATH = "/xslt/util";
+ public static final String PARAMS_DEFAULT_FOLDER_PATH = "/params/default";
+ public static final String PARAMS_SCHEMAS_FOLDER_PATH = "/params/schemas";
public static final String TRANSFORMATIONS_FOLDER = "/xslt/transformations";
public static final String CONFIG_FOLDER = "/config";
public static final String INPUTS_FOLDER = "/xslt/inputs";
public static final File LABEL_FOLDER = getFileFromUrl(Constants.class.getResource("/lang/fr"));
+ public static final String PARAMETERS_DEFAULT_XML = PARAMS_DEFAULT_FOLDER_PATH+"/parameters.xml";
- // ----- Ref
- public static final String PARAMETERS_XML = "parameters.xml";
-
+
+
+ // Params : schema
+ public static final URL ENO_PARAMETERS_XSD = Constants.class.getResource(PARAMS_SCHEMAS_FOLDER_PATH+"/ENOParameters.xsd");
+
// ----- XSL Parameters path
public static final String CONFIG_DDI2FR = CONFIG_FOLDER + "/ddi2fr.xml";
public static final String CONFIG_DDI2ODT = CONFIG_FOLDER + "/ddi2odt.xml";
public static final String CONFIG_DDI2PDF = CONFIG_FOLDER + "/ddi2pdf.xml";
public static final String CONFIG_POGUES_XML2DDI = CONFIG_FOLDER + "/pogues-xml2ddi.xml";
public static final String CONFIG_DDI2JS = CONFIG_FOLDER + "/ddi2js.xml";
- public static final String PARAMETERS = "/parameters.xml";
+ public static final String PARAMETERS_DEFAULT = PARAMS_DEFAULT_FOLDER_PATH + "/parameters.xml";
+ public static final String METADATA_DEFAULT = PARAMS_DEFAULT_FOLDER_PATH + "/metadata.xml";
+ public static final String MAPPING_DEFAULT = PARAMS_DEFAULT_FOLDER_PATH + "/mapping.xml";
public static final String LABELS_FOLDER = "/lang/fr/";
+
+
+ /********************************************************/
+ /********************** Pre-processing ******************/
+ /********************************************************/
+ public static final String PRE_PROCESSING_FOLDER = "/xslt/pre-processing";
+
+ /******************* DDI - Pre-processing ****************/
+ public static final String DDI_DEREFERENCING_XSL = PRE_PROCESSING_FOLDER + "/ddi/dereferencing.xsl";
+ public static final String UTIL_DDI_DEREFERENCING_XSL = UTIL_FOLDER_PATH + "/ddi/dereferencing.xsl";
+ public static final String UTIL_DDI_TITLING_XSL = PRE_PROCESSING_FOLDER + "/ddi/titling.xsl";
+ public static final String UTIL_DDI_MAPPING_XSL = PRE_PROCESSING_FOLDER + "/ddi/mapping.xsl";
+ public static final String UTIL_DDI_CLEANING_XSL = PRE_PROCESSING_FOLDER + "/ddi/cleaning.xsl";
+ public static final String UTIL_DDI32_TO_DDI33_XSL = UTIL_FOLDER_PATH + "/ddi/ddi32toddi33.xsl";
+ /*************** PoguesXML - Pre-processing **************/
+ public static final String UTIL_POGUES_XML_SUPP_GOTO_XSL = PRE_PROCESSING_FOLDER + "/pogues-xml/2suppressionGoto.xsl";
+ public static final String UTIL_POGUES_XML_MERGE_ITE_XSL = PRE_PROCESSING_FOLDER + "/pogues-xml/tweak-to-merge-equivalent-ite.xsl";
+ public static final String UTIL_POGUES_XML_GOTO_ITE_XSL = PRE_PROCESSING_FOLDER + "/pogues-xml/goto-2-if-then-else.xsl";
+
+
+
+ /********************************************************/
+ /********************* Post-processing ******************/
+ /********************************************************/
+ public static final String POST_PROCESSING_FOLDER = "/xslt/post-processing";
+
+ /********************* DDI - Post-processing ******************/
+ public static final String UTIL_DDI_MW2XHTML_XSL = POST_PROCESSING_FOLDER + "/ddi/mw2xhtml.xsl";
+ public static final String UTIL_DDI_TWEAK_XHTML_FOR_DDI_XSL = POST_PROCESSING_FOLDER + "/ddi/tweak-xhtml-for-ddi.xsl";
- // ----- Files
- public static final String DDI_DEREFERENCING_XSL = UTIL_FOLDER_PATH + "/ddi/dereferencing.xsl";
- public static final String PARAMETERS_FILE = "/" + PARAMETERS_XML;
- public static final String UTIL_DDI_TITLING_XSL = UTIL_FOLDER_PATH + "/ddi/titling.xsl";
- public static final String UTIL_POGUES_XML_SUPP_GOTO_XSL = UTIL_FOLDER_PATH + "/pogues-xml/2suppressionGoto.xsl";
- public static final String UTIL_POGUES_XML_MERGE_ITE_XSL = UTIL_FOLDER_PATH + "/pogues-xml/tweak-to-merge-equivalent-ite.xsl";
- public static final String UTIL_POGUES_XML_GOTO_ITE_XSL = UTIL_FOLDER_PATH + "/pogues-xml/goto-2-if-then-else.xsl";
- public static final String UTIL_DDI_MW2XHTML_XSL = UTIL_FOLDER_PATH + "/ddi/mw2xhtml.xsl";
- public static final String UTIL_DDI_TWEAK_XHTML_FOR_DDI_XSL = UTIL_FOLDER_PATH + "/ddi/tweak-xhtml-for-ddi.xsl";
- public static final String UTIL_DDI_CLEANING_XSL = UTIL_FOLDER_PATH + "/ddi/cleaning.xsl";
public static final String UTIL_FODS_PREFORMATTING_XSL = UTIL_FOLDER_PATH + "/fods/preformatting.xsl";
public static final String UTIL_XSL_INCORPORATION_XSL = UTIL_FOLDER_PATH + "/xsl/incorporation.xsl";
- public static final String UTIL_DDI_DEREFERENCING_XSL = UTIL_FOLDER_PATH + "/ddi/dereferencing.xsl";
- public static final String BROWSING_FR_TEMPLATE_XSL = UTIL_FOLDER_PATH + "/fr/browsing.xsl";
- public static final String BROWSING_JS_TEMPLATE_XSL = UTIL_FOLDER_PATH + "/js/browsing.xsl";
-// public static final String PROPERTIES_FILE_FR = CONFIG_FOLDER + "/ddi2fr.xml";
-// public static final String PROPERTIES_FILE_ODT = CONFIG_FOLDER + "/ddi2odt.xml";
-// public static final String PROPERTIES_FILE_PDF = CONFIG_FOLDER + "/ddi2pdf.xml";
-// public static final String PROPERTIES_FILE_DDI = CONFIG_FOLDER + "/pogues-xml2ddi.xml";
+
- // ---------- XSL generation
+ public static final String BROWSING_FR_TEMPLATE_XSL = UTIL_FOLDER_PATH + "/fr/browsing.xsl";
+
+ /********************* XSL generation ******************/
public static final String TRANSFORMATIONS_DDI2FR_DDI2FR_XSL = TRANSFORMATIONS_FOLDER + "/ddi2fr/ddi2fr.xsl";
public static final String TRANSFORMATIONS_DDI2ODT_DDI2ODT_XSL = TRANSFORMATIONS_FOLDER + "/ddi2odt/ddi2odt.xsl";
public static final String TRANSFORMATIONS_DDI2PDF_DDI2PDF_XSL = TRANSFORMATIONS_FOLDER + "/ddi2pdf/ddi2pdf.xsl";
public static final String TRANSFORMATIONS_POGUES_XML2DDI_POGUES_XML2DDI_XSL = TRANSFORMATIONS_FOLDER + "/pogues-xml2ddi/pogues-xml2ddi.xsl";
+ public static final String TRANSFORMATIONS_DDI2POGUES_XML_XSL = TRANSFORMATIONS_FOLDER + "/ddi2pogues-xml/ddi2pogues-xml.xsl";
public static final String TRANSFORMATIONS_DDI2JS_DDI2JS_XSL = TRANSFORMATIONS_FOLDER + "/ddi2js/ddi2js.xsl";
-
+
public static final String TRANSFORMATIONS_DDI2FR_DRIVERS_FODS = TRANSFORMATIONS_FOLDER + "/ddi2fr/drivers.fods";
public static final String TRANSFORMATIONS_DDI2ODT_DRIVERS_FODS = TRANSFORMATIONS_FOLDER + "/ddi2odt/drivers.fods";
public static final String TRANSFORMATIONS_DDI2PDF_DRIVERS_FODS = TRANSFORMATIONS_FOLDER + "/ddi2pdf/drivers.fods";
public static final String TRANSFORMATIONS_POGUES_XML2DDI_DRIVERS_FODS = TRANSFORMATIONS_FOLDER + "/pogues-xml2ddi/drivers.fods";
public static final String TRANSFORMATIONS_DDI2JS_DRIVERS_FODS = TRANSFORMATIONS_FOLDER + "/ddi2js/drivers.fods";
-
+
public static final String TRANSFORMATIONS_DDI2FR_FUNCTIONS_FODS = TRANSFORMATIONS_FOLDER + "/ddi2fr/functions.fods";
public static final String TRANSFORMATIONS_DDI2ODT_FUNCTIONS_FODS = TRANSFORMATIONS_FOLDER + "/ddi2odt/functions.fods";
public static final String TRANSFORMATIONS_DDI2PDF_FUNCTIONS_FODS = TRANSFORMATIONS_FOLDER + "/ddi2pdf/functions.fods";
public static final String TRANSFORMATIONS_POGUES_XML2DDI_FUNCTIONS_FODS = TRANSFORMATIONS_FOLDER + "/pogues-xml2ddi/functions.fods";
public static final String TRANSFORMATIONS_DDI2JS_FUNCTIONS_FODS = TRANSFORMATIONS_FOLDER + "/ddi2js/functions.fods";
-
+
public static final String TRANSFORMATIONS_DDI2FR_FUNCTIONS_XSL = TRANSFORMATIONS_FOLDER + "/ddi2fr/functions.xsl";
public static final String TRANSFORMATIONS_DDI2ODT_FUNCTIONS_XSL = TRANSFORMATIONS_FOLDER + "/ddi2odt/functions.xsl";
public static final String TRANSFORMATIONS_DDI2PDF_FUNCTIONS_XSL = TRANSFORMATIONS_FOLDER + "/ddi2pdf/functions.xsl";
public static final String TRANSFORMATIONS_POGUES_XML2DDI_FUNCTIONS_XSL = TRANSFORMATIONS_FOLDER + "/pogues-xml2ddi/functions.xsl";
public static final String TRANSFORMATIONS_DDI2JS_FUNCTIONS_XSL = TRANSFORMATIONS_FOLDER + "/ddi2js/functions.xsl";
-
+
public static final String TRANSFORMATIONS_DDI2FR_TREE_NAVIGATION_FODS = TRANSFORMATIONS_FOLDER + "/ddi2fr/tree-navigation.fods";
public static final String TRANSFORMATIONS_DDI2ODT_TREE_NAVIGATION_FODS = TRANSFORMATIONS_FOLDER + "/ddi2odt/tree-navigation.fods";
public static final String TRANSFORMATIONS_DDI2PDF_TREE_NAVIGATION_FODS = TRANSFORMATIONS_FOLDER + "/ddi2pdf/tree-navigation.fods";
@@ -102,81 +124,97 @@ private Constants() {
public static final String TRANSFORMATIONS_DDI2PDF_TREE_NAVIGATION_XSL = TRANSFORMATIONS_FOLDER + "/ddi2pdf/tree-navigation.xsl";
public static final String TRANSFORMATIONS_POGUES_XML2DDI_TREE_NAVIGATION_XSL = TRANSFORMATIONS_FOLDER + "/pogues-xml2ddi/tree-navigation.xsl";
public static final String TRANSFORMATIONS_DDI2JS_TREE_NAVIGATION_XSL = TRANSFORMATIONS_FOLDER + "/ddi2js/tree-navigation.xsl";
-
+
public static final String TRANSFORMATIONS_DDI2FR_DDI2FR_FIXED_XSL = TRANSFORMATIONS_FOLDER + "/ddi2fr/ddi2fr-fixed.xsl";
public static final String TRANSFORMATIONS_DDI2ODT_DDI2ODT_FIXED_XSL = TRANSFORMATIONS_FOLDER + "/ddi2odt/ddi2odt-fixed.xsl";
public static final String TRANSFORMATIONS_DDI2PDF_DDI2PDF_FIXED_XSL = TRANSFORMATIONS_FOLDER + "/ddi2pdf/ddi2pdf-fixed.xsl";
public static final String TRANSFORMATIONS_DDI2JS_DDI2JS_FIXED_XSL = TRANSFORMATIONS_FOLDER + "/ddi2js/ddi2js-fixed.xsl";
public static final String TRANSFORMATIONS_POGUES_XML2DDI_POGUES_XML2DDI_FIXED_XSL = TRANSFORMATIONS_FOLDER + "/pogues-xml2ddi/pogues-xml2ddi-fixed.xsl";
-
+
// ----------
public static final String INPUTS_DDI_FUNCTIONS_FODS = INPUTS_FOLDER + "/ddi/functions.fods";
public static final String INPUTS_DDI_FUNCTIONS_XSL = INPUTS_FOLDER + "/ddi/functions.xsl";
public static final String INPUTS_DDI_TEMPLATES_FODS = INPUTS_FOLDER + "/ddi/templates.fods";
public static final String INPUTS_DDI_TEMPLATES_XSL = INPUTS_FOLDER + "/ddi/templates.xsl";
-
+
public static final String INPUTS_POGUES_XML_FUNCTIONS_FODS = INPUTS_FOLDER + "/pogues-xml/functions.fods";
public static final String INPUTS_POGUES_XML_FUNCTIONS_XSL = INPUTS_FOLDER + "/pogues-xml/functions.xsl";
public static final String INPUTS_POGUES_XML_TEMPLATES_FODS = INPUTS_FOLDER + "/pogues-xml/templates.fods";
public static final String INPUTS_POGUES_XML_TEMPLATES_XSL = INPUTS_FOLDER + "/pogues-xml/templates.xsl";
-
+
public static final String INPUTS_DDI_SOURCE_FIXED_XSL = INPUTS_FOLDER + "/ddi/source-fixed.xsl";
public static final String INPUTS_POGUES_XML_SOURCE_FIXED_XSL = INPUTS_FOLDER + "/pogues-xml/source-fixed.xsl";
public static final String FODS_2_XML_XSL = TRANSFORMATIONS_FOLDER + "/fods2xml.xsl";
public static final String XML_2_XSL_XSL = TRANSFORMATIONS_FOLDER + "/xml2xsl.xsl";
+ /********************* Merging paramters ******************/
+ public static final String MERGE_PARAMETERS_XSL = UTIL_FOLDER_PATH + "/params/merge-parameters.xsl";
+
+
+
+ /********************************************************/
+ /********************* Post-processing ******************/
+ /********************************************************/
public static final String OUPUTS_FOLDER = "/xslt/outputs/pdf";
- public static final String OUPUTS_FOLDER_2 = "/xslt/util/pdf";
- public static final String OUPUTS_FOLDER_JS = "/xslt/util/js";
+ public static final String POST_PROCESSING_FOLDER_PDF = "/xslt/post-processing/pdf";
+ public static final String POST_PROCESSING_FOLDER_JS = "/xslt/post-processing/js";
+ public static final String POST_PROCESSING_FOLDER_FR = "/xslt/post-processing/fr";
public static final String TRANSFORMATIONS_CUSTOMIZATION_FO_4PDF = OUPUTS_FOLDER + "/publipostage.xsl";
- public static final String TRANSFORMATIONS_CUSTOMIZATION_FO_4PDF_2 = OUPUTS_FOLDER_2 + "/mailing-vtl.xsl";
- public static final String TRANSFORMATIONS_SPECIF_TREATMENT_FO_4PDF = "/pdf-specific-treatment.xsl";
- public static final String TRANSFORMATIONS_ACCOMPANYING_MAILS_FO_4PDF = OUPUTS_FOLDER_2 + "/accompanying-mails.xsl";
- public static final String TRANSFORMATIONS_COVER_PAGE_FO_4PDF = OUPUTS_FOLDER_2 + "/insert-cover-page.xsl";
- public static final String TRANSFORMATIONS_END_QUESTION_FO_4PDF = OUPUTS_FOLDER_2 + "/insert-end-questions.xsl";
- public static final String TRANSFORMATIONS_EDIT_STRUCTURE_PAGES_FO_4PDF = OUPUTS_FOLDER_2 + "/edit-structure-page.xsl";
- public static final String STATIC_PAGES = OUPUTS_FOLDER_2 +"/static-pages.fo";
- public static final String TRANSFORMATIONS_SORT_COMPONENTS_JS = OUPUTS_FOLDER_JS + "/sort-components.xsl";
- public static final String TRANSFORMATIONS_EXTERNALIZE_VARIABLES_JS = OUPUTS_FOLDER_JS + "/externalize-variables.xsl";
- // ---------- Temporary file system
+
+ /********************* PDF/FO - Post-processing ******************/
+ public static final String TRANSFORMATIONS_CUSTOMIZATION_FO_4PDF_2 = POST_PROCESSING_FOLDER_PDF + "/mailing-vtl.xsl";
+ public static final String TRANSFORMATIONS_SPECIF_TREATMENT_FO_4PDF = POST_PROCESSING_FOLDER_PDF +"/pdf-specific-treatment.xsl";
+ public static final String TRANSFORMATIONS_ACCOMPANYING_MAILS_FO_4PDF = POST_PROCESSING_FOLDER_PDF + "/accompanying-mails.xsl";
+ public static final String TRANSFORMATIONS_COVER_PAGE_FO_4PDF = POST_PROCESSING_FOLDER_PDF + "/insert-cover-page.xsl";
+ public static final String TRANSFORMATIONS_END_QUESTION_FO_4PDF = POST_PROCESSING_FOLDER_PDF + "/insert-end-questions.xsl";
+ public static final String TRANSFORMATIONS_EDIT_STRUCTURE_PAGES_FO_4PDF = POST_PROCESSING_FOLDER_PDF + "/edit-structure-page.xsl";
+
+ /********************* JS/XML-Lunatic - Post-processing ******************/
+ public static final String TRANSFORMATIONS_SORT_COMPONENTS_JS = POST_PROCESSING_FOLDER_JS + "/sort-components.xsl";
+ public static final String TRANSFORMATIONS_EXTERNALIZE_VARIABLES_JS = POST_PROCESSING_FOLDER_JS + "/externalize-variables.xsl";
+ public static final String TRANSFORMATIONS_INSERT_GENERIC_QUESTIONS_JS = POST_PROCESSING_FOLDER_JS + "/insert-generic-questions.xsl";
+
+ /********************* FR/Xform Post-processing ******************/
+ public static final String UTIL_FR_BROWSING_XSL = POST_PROCESSING_FOLDER_FR + "/browsing.xsl";
+ public static final String UTIL_FR_FIX_ADHERENCE_XSL = POST_PROCESSING_FOLDER_FR + "/fix-adherence.xsl";
+ public static final String UTIL_FR_EDIT_PATRON_XSL = POST_PROCESSING_FOLDER_FR + "/edit-patron.xsl";
+ public static final String UTIL_FR_IDENTIFICATION_XSL = POST_PROCESSING_FOLDER_FR + "/identification.xsl";
+ public static final String UTIL_FR_INSERT_END_XSL = POST_PROCESSING_FOLDER_FR + "/insert-end.xsl";
+ public static final String UTIL_FR_INSERT_GENERIC_QUESTIONS_XSL = POST_PROCESSING_FOLDER_FR + "/insert-generic-questions.xsl";
+ public static final String UTIL_FR_INSERT_WELCOME_XSL = POST_PROCESSING_FOLDER_FR + "/insert-welcome.xsl";
+ public static final String UTIL_FR_MODELE_COLTRANE_XSL = POST_PROCESSING_FOLDER_FR + "/modele-coltrane.xsl";
+ public static final String UTIL_FR_SPECIFIC_TREATMENT_XSL = POST_PROCESSING_FOLDER_FR + "/fr-specific-treatment.xsl";
+
+ /********************* Temporary file system ******************/
// ----- Folders
- //public static final String TEMP_FOLDER_PATH = "/target/eno";
public static final String TEMP_FOLDER_PATH = System.getProperty("java.io.tmpdir") + "/eno";
-
+
public static final File TEMP_FOLDER = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH);
- //public static final File SUB_TEMP_FOLDER = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/temp");
+
+ public static final File TEMP_FILE_PARAMS(String file) {
+ return getFileOrDirectoryFromPath(TEMP_FOLDER_PATH +"/"+file);
+ }
public static File sUB_TEMP_FOLDER_FILE (String survey){
return getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/"+survey);
}
-
+
public static String sUB_TEMP_FOLDER (String survey){
return TEMP_FOLDER_PATH + "/"+survey;
}
-
-
+
// ----- Files
- //public static final File TEMP_NULL_TMP = getFileOrDirectoryFromPath(SUB_TEMP_FOLDER + "/null.tmp");
public static File tEMP_NULL_TMP (String sUB_TEMP_FOLDER){
return getFileOrDirectoryFromPath(sUB_TEMP_FOLDER + "/null.tmp");
}
+ public static File tEMP_MAPPING_TMP (String sUB_TEMP_FOLDER){
+ return getFileOrDirectoryFromPath(sUB_TEMP_FOLDER + "/mapping.xml");
+ }
public static final File TEMP_PREFORMATE_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/temp/preformate.tmp");
-// public static File tEMP_PREFORMATE_TMP (String sUB_TEMP_FOLDER) {
-// return getFileOrDirectoryFromPath(sUB_TEMP_FOLDER + "/preformate.tmp");
-// }
public static final File TEMP_XML_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/temp/xml.tmp");
-// public static File tEMP_XML_TMP (String sUB_TEMP_FOLDER){
-// return getFileOrDirectoryFromPath(sUB_TEMP_FOLDER + "/xml.tmp");
-// }
public static final File TEMP_TEMP_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/temp/temp.tmp");
-// public static File tEMP_TEMP_TMP(String sUB_TEMP_FOLDER){
-// return getFileOrDirectoryFromPath(sUB_TEMP_FOLDER + "/temp.tmp");
-// }
public static final File TEMP_TEMP_BIS_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/temp/temp-bis.tmp");
-// public static File tEMP_TEMP_BIS_TMP(String sUB_TEMP_FOLDER){
-// return getFileOrDirectoryFromPath(sUB_TEMP_FOLDER + "/temp-bis.tmp");
-// }
-
+
// Those files holds the XSL generated from FODS ; they will be then copied to resource directory when packaging to JAR
public static final File TRANSFORMATIONS_DDI2FR_DDI2FR_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/ddi2fr/ddi2fr.xsl");
public static final File TRANSFORMATIONS_DDI2ODT_DDI2ODT_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/ddi2odt/ddi2odt.xsl");
@@ -198,15 +236,15 @@ public static File tEMP_NULL_TMP (String sUB_TEMP_FOLDER){
public static final File TRANSFORMATIONS_DDI2PDF_TREE_NAVIGATION_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/ddi2pdf/tree-navigation.xsl");
public static final File TRANSFORMATIONS_POGUES_XML2DDI_TREE_NAVIGATION_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/pogues-xml2ddi/tree-navigation.xsl");
public static final File TRANSFORMATIONS_DDI2JS_TREE_NAVIGATION_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/ddi2js/tree-navigation.xsl");
-
+
public static final File INPUTS_DDI_FUNCTIONS_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/ddi/functions.xsl");
public static final File INPUTS_DDI_TEMPLATES_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/ddi/templates.xsl");
public static final File INPUTS_DDI_SOURCE_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/ddi/source.xsl");
-
+
public static final File INPUTS_POGUES_XML_FUNCTIONS_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/pogues-xml/functions.xsl");
public static final File INPUTS_POGUES_XML_TEMPLATES_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/pogues-xml/templates.xsl");
public static final File INPUTS_POGUES_XML_SOURCE_XSL_TMP = getFileOrDirectoryFromPath(TEMP_FOLDER_PATH + "/pogues-xml/source.xsl");
-
+
// ---------- Utilies
/** Generic file getter from classpath
* @return the file or null when not found.
@@ -220,78 +258,66 @@ public static InputStream getInputStreamFromPath(String path) {
return null;
}
}
-
-
+
+
/** Generic getter for files or directories */
private static File getFileOrDirectoryFromPath(String path) {
return Paths.get(path).toFile();
}
-
+
@SuppressWarnings("finally")
public static File getFileFromUrl(URL url) {
File file = null;
- try {
- file = new File(url.toURI());
- } catch (URISyntaxException e) {
- file = new File(url.getPath());
- } finally {
- return file;
- }
+ try {
+ file = new File(url.toURI());
+ } catch (URISyntaxException e) {
+ file = new File(url.getPath());
+ } finally {
+ return file;
+ }
}
- // TODO Under this comment are the legacy references to files and directories that eventually will be deleted.
- // ----------------------------------------------- //
-
- // Root folder of the project : must be filled
- // FIXME use a dynamic path
-// public static final String ROOT_FOLDER = "D:/arkn1q/Mes Documents/eclipse_workspace/Eno";
-//
-// public static final String QUESTIONNAIRE_FOLDER = ROOT_FOLDER + "/questionnaires";
-// public static final String TEMP_TEST_FOLDER = TEMP_FOLDER_PATH + "/nonRegressionTest";
-
/********************************************************/
- /******************* ENOPreprocessing *******************/
+ /*********************** Temp foder ********************/
/********************************************************/
-
-
+ public static String tEMP_XFORMS_FOLDER (String sUB_TEMP_FOLDER){
+ return sUB_TEMP_FOLDER + "/xforms";
+ }
+ public static String tEMP_ODT_FOLDER(String sUB_TEMP_FOLDER){
+ return sUB_TEMP_FOLDER + "/odt";
+ }
+ public static String tEMP_JS_FOLDER(String sUB_TEMP_FOLDER){
+ return sUB_TEMP_FOLDER+ "/js";
+ }
+ public static String tEMP_PDF_FOLDER(String sUB_TEMP_FOLDER){
+ return sUB_TEMP_FOLDER+ "/pdf";
+ }
+ public static String tEMP_DDI_FOLDER(String sUB_TEMP_FOLDER){
+ return sUB_TEMP_FOLDER + "/ddi";
+ }
+ public static String tEMP_POGUES_XML_FOLDER(String sUB_TEMP_FOLDER){
+ return sUB_TEMP_FOLDER + "/pogues-xml";
+ }
+ public static final String BASIC_FORM_TMP_FILENAME = "basic-form.tmp";
+
-
- ////// INCORPORATION TARGET
- //// Temporary files used in INCORPORATION
-
-
- //// Xsl stylesheets used in INCORPORATION
-
- /********************************************************/
- /******************* DDIPreprocessing *******************/
- /********************************************************/
- //// Plugin Conf
- public static final String PDF_PLUGIN_XML_CONF = "src/main/resources/config/plugins-conf.xml";
- public static final File PDF_PLUGIN_XML_CONF_FILE = getFileFromUrl(Constants.class.getResource(CONFIG_FOLDER + "/plugins-conf.xml"));
-
-
- /********************************************************/
- /******************* DDIPreprocessing *******************/
/********************************************************/
-
- //// Temporary files used in DDIPreprocessing
- //public static final String OLD_TEMP_NULL_TMP2 = SUB_TEMP_FOLDER + "/null.tmp";
- public String oLD_TEMP_NULL_TMP2(String sUB_TEMP_FOLDER){
- return sUB_TEMP_FOLDER + "/null.tmp";
- }
-
- //// Xsl stylesheets used in DDIPreprocessing
-
+ /********************* File Extension *******************/
+ /************** (used during post-processing) ***********/
+ public static final String BASE_NAME_FORM_FILE = "/form";
+
+ /************ DDI and pogues-xml extension ***************/
public static final String CLEANED_EXTENSION = "-cleaned.tmp";
public static final String MW_EXTENSION = "-mw.tmp";
public static final String FINAL_EXTENSION = "-final.tmp";
public static final String TEMP_EXTENSION = "-temp.xml";
public static final String FINAL_DDI_EXTENSION = "-final.xml";
-
+ public static final String DDI32_DDI33_EXTENSION = "-ddi33.xml";
+ /********************* pdf/fo extension *******************/
public static final String ACCOMPANYING_MAILS_FO_EXTENSION = "-accompanying-mails.fo";
public static final String COVER_PAGE_FO_EXTENSION = "-cover-page.fo";
public static final String EDIT_STRUCTURE_FO_EXTENSION = "-edit-structure.fo";
@@ -299,34 +325,23 @@ public String oLD_TEMP_NULL_TMP2(String sUB_TEMP_FOLDER){
public static final String SPECIFIC_TREAT_PDF_EXTENSION = "-specific-form.fo";
public static final String TABLE_COL_SIZE_PDF_EXTENSION = "-temp.fo";
public static final String FINAL_PDF_EXTENSION = "-final-out.fo";
- //public static final String CUSTOM_FO_EXTENSION = "-out.fo";
public static final String MAILING_FO_EXTENSION = "-mailing-vtl.fo";
+
+ /****************** js/xml-lunatic extension **************/
public static final String SORT_COMPONENTS_JS_EXTENSION = "-sorted.xml";
+ public static final String INSERT_GENERIC_QUESTIONS_JS_EXTENSION = "-insert-questions.xml";
+ public static final String EXTERNALIZE_VARIABLES_JS_EXTENSION = "-ext-variables.xml";
+ public static final String VTL_PARSER_JS_EXTENSION = "-vtl-parsed.xml";
public static final String FINAL_JS_EXTENSION = "-lunatic.xml";
-
- //public static final String TEMP_XFORMS_FOLDER = SUB_TEMP_FOLDER + "/xforms";
- public static String tEMP_XFORMS_FOLDER (String sUB_TEMP_FOLDER){
- return sUB_TEMP_FOLDER + "/xforms";
- }
- //public static final String TEMP_ODT_FOLDER = SUB_TEMP_FOLDER + "/odt";
- public static String tEMP_ODT_FOLDER(String sUB_TEMP_FOLDER){
- return sUB_TEMP_FOLDER + "/odt";
- }
-
- //public static final String TEMP_PDF_FOLDER = SUB_TEMP_FOLDER + "/pdf";
- public static String tEMP_PDF_FOLDER(String sUB_TEMP_FOLDER){
- return sUB_TEMP_FOLDER+ "/pdf";
- }
- //public static final String TEMP_DDI_FOLDER = SUB_TEMP_FOLDER + "/ddi";
- public static String tEMP_DDI_FOLDER(String sUB_TEMP_FOLDER){
- return sUB_TEMP_FOLDER + "/ddi";
- }
- //public static final String TEMP_POGUES_XML_FOLDER = SUB_TEMP_FOLDER + "/pogues-xml";
- public static String tEMP_POGUES_XML_FOLDER(String sUB_TEMP_FOLDER){
- return sUB_TEMP_FOLDER + "/pogues-xml";
- }
- public static final String BASIC_FORM_TMP_FILENAME = "basic-form.tmp";
-
-
+ /******************** fr/xform extension ******************/
+ public static final String BROWSING_FR_EXTENSION = "-browsing.xhtml";
+ public static final String EDIT_PATRON_FR_EXTENSION = "-edit-patron.xhtml";
+ public static final String FIX_ADHERENCE_FR_EXTENSION = "-fix-adherence.xhtml";
+ public static final String IDENTIFICATION_FR_EXTENSION = "-identification.xhtml";
+ public static final String INSERT_END_FR_EXTENSION = "-insert-end.xhtml";
+ public static final String INSERT_WELCOME_FR_EXTENSION = "-insert-welcome.xhtml";
+ public static final String INSERT_GENERIC_QUESTIONS_FR_EXTENSION = "-insert-questions.xhtml";
+ public static final String MODELE_COLTRANE_FR_EXTENSION = "-modele-coltrane.xhtml";
+ public static final String SPECIFIC_TREATMENT_FR_EXTENSION = "-specific-treatment.xhtml";
}
diff --git a/src/main/java/fr/insee/eno/GenerationService.java b/src/main/java/fr/insee/eno/GenerationService.java
index 4ab05da92..03e1a65aa 100644
--- a/src/main/java/fr/insee/eno/GenerationService.java
+++ b/src/main/java/fr/insee/eno/GenerationService.java
@@ -4,10 +4,14 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.io.Files;
import com.google.inject.Inject;
import fr.insee.eno.generation.Generator;
@@ -27,6 +31,9 @@ public class GenerationService {
private final Postprocessor[] postprocessors;
private byte[] parameters;
+ private byte[] metadata;
+ private byte[] specificTreatment;
+ private byte[] mapping;
@Inject
public GenerationService(final Preprocessor[] preprocessors, final Generator generator,
@@ -63,45 +70,76 @@ public GenerationService(final Preprocessor preprocessor, final Generator genera
* bim
*/
public File generateQuestionnaire(File inputFile, String surveyName) throws Exception {
+ logger.info(this.toString());
logger.info("Generating questionnaire for: " + surveyName);
String tempFolder = System.getProperty("java.io.tmpdir") + "/" + surveyName;
logger.debug("Temp folder: " + tempFolder);
cleanTempFolder(surveyName);
-
- File preprocessResultFileName = this.preprocessors[0].process(inputFile, parameters, surveyName,
- generator.in2out());
+ File preprocessResultFileName = null;
+
+ preprocessResultFileName = this.preprocessors[0].process(inputFile, parameters, surveyName,generator.in2out());
+
for (int i = 1; i < preprocessors.length; i++) {
- preprocessResultFileName = this.preprocessors[0].process(preprocessResultFileName, parameters, surveyName,
+ preprocessResultFileName = this.preprocessors[i].process(preprocessResultFileName, parameters, surveyName,
generator.in2out());
}
File generatedForm = this.generator.generate(preprocessResultFileName, parameters, surveyName);
-
- File outputForm = this.postprocessors[0].process(generatedForm, parameters, surveyName);
+ File outputForm = this.postprocessors[0].process(generatedForm, parameters, metadata, specificTreatment, mapping, surveyName);
for (int i = 1; i < postprocessors.length; i++) {
- outputForm = this.postprocessors[i].process(outputForm, parameters, surveyName);
+ outputForm = this.postprocessors[i].process(outputForm, parameters, metadata, specificTreatment, mapping,surveyName);
}
- logger.debug("Path to generated questionnaire: " + outputForm.getAbsolutePath());
+ File finalForm = new File(outputForm.getParent()+Constants.BASE_NAME_FORM_FILE+"."+FilenameUtils.getExtension(outputForm.getAbsolutePath()));
+ if(!finalForm.equals(outputForm)) {
+ Files.move(outputForm, finalForm);
+ }
+ logger.debug("Path to generated questionnaire: " + finalForm.getAbsolutePath());
- return outputForm;
+ return finalForm;
}
+
+
+ public void setParameters(ByteArrayOutputStream parametersBAOS) {
+ this.parameters = parametersBAOS.toByteArray();
+ }
public void setParameters(InputStream parametersIS) throws IOException {
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- byte[] buf = new byte[1024];
- int n = 0;
- while ((n = parametersIS.read(buf)) >= 0) {
- baos.write(buf, 0, n);
+ if(parametersIS!=null) {
+ this.parameters = IOUtils.toByteArray(parametersIS);
+ }
+ }
+
+ public void setMetadata(InputStream metadataIS) throws IOException {
+ if(metadataIS!=null) {
+ this.metadata = IOUtils.toByteArray(metadataIS);
+ }
+ }
+
+ public void setSpecificTreatment(InputStream specificTreatmentIS) throws IOException {
+ if(specificTreatmentIS!=null) {
+ this.specificTreatment = IOUtils.toByteArray(specificTreatmentIS);
+ }
+ }
+
+ public void setMapping(InputStream mappingIS) throws IOException {
+ if(mappingIS!=null) {
+ this.mapping = IOUtils.toByteArray(mappingIS);
}
- this.parameters = baos.toByteArray();
-
}
public byte[] getParameters() {
return parameters;
}
+ public byte[] getMetadata() {
+ return metadata;
+ }
+ public byte[] getSpecificTreatment() {
+ return specificTreatment;
+ }
+ public byte[] getMapping() {
+ return mapping;
+ }
/**
* Clean the temp dir if it exists
@@ -149,4 +187,12 @@ private void cleanTempFolder(File folder) throws IOException {
}
}
+ @Override
+ public String toString() {
+ return "GenerationService [preprocessors=" + Arrays.toString(preprocessors) + ", generator=" + generator.in2out()
+ + ", postprocessors=" + Arrays.toString(postprocessors) + "]";
+ }
+
+
+
}
diff --git a/src/main/java/fr/insee/eno/ParameterizedGenerationService.java b/src/main/java/fr/insee/eno/ParameterizedGenerationService.java
new file mode 100644
index 000000000..f4b52639e
--- /dev/null
+++ b/src/main/java/fr/insee/eno/ParameterizedGenerationService.java
@@ -0,0 +1,180 @@
+package fr.insee.eno;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.InputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.exception.EnoParametersException;
+import fr.insee.eno.parameters.ENOParameters;
+import fr.insee.eno.parameters.Pipeline;
+import fr.insee.eno.params.ValorizatorParameters;
+import fr.insee.eno.params.ValorizatorParametersImpl;
+import fr.insee.eno.params.pipeline.PipeLineGeneratorImpl;
+import fr.insee.eno.params.pipeline.PipelineGenerator;
+import fr.insee.eno.params.validation.SchemaValidator;
+import fr.insee.eno.params.validation.SchemaValidatorImpl;
+import fr.insee.eno.params.validation.ValidationMessage;
+import fr.insee.eno.params.validation.Validator;
+import fr.insee.eno.params.validation.ValidatorImpl;
+
+/**
+ * Orchestrates the whole parameterized generation process.
+ */
+public class ParameterizedGenerationService {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ParameterizedGenerationService.class);
+
+ private PipelineGenerator pipelineGenerator = new PipeLineGeneratorImpl();
+
+ private ValorizatorParameters valorizatorParameters = new ValorizatorParametersImpl();
+
+ private Validator validator = new ValidatorImpl();
+
+ private SchemaValidator schemaValidator = new SchemaValidatorImpl();
+
+ /**
+ * It generates File using transformations defined in ENOParameters
+ * @param inputFile : the xml input File (required)
+ * @param params : java object ENOParameter (required)
+ * @param metadata : InputStream of metadata xml file (optional)
+ * @param specificTreatment : InputStream of an xsl sheet (optional)
+ * @param mapping : InputStream of a xml file using in FRModeleColtranePostProcessor (optional)
+ * @return the file resulting from the xslt transformations
+ * @throws Exception
+ */
+ public File generateQuestionnaire(File inputFile, ENOParameters params, InputStream metadata, InputStream specificTreatment, InputStream mapping) throws Exception{
+ File output=null;
+ Pipeline pipeline = params.getPipeline();
+
+ ValidationMessage valid = validator.validate(params);
+ if(valid.isValid()) {
+ GenerationService generationService = pipelineGenerator.setPipeLine(pipeline);
+ ByteArrayOutputStream paramsFinal = valorizatorParameters.mergeParameters(params);
+ LOGGER.info("Setting paramaters to the pipeline.");
+ generationService.setParameters(paramsFinal);
+ LOGGER.info("Setting metadata to the pipeline.");
+ generationService.setMetadata(metadata);
+ LOGGER.info("Setting specific treamtment to the pipeline.");
+ generationService.setSpecificTreatment(specificTreatment);
+ LOGGER.info("Setting mapping file to the pipeline.");
+ generationService.setMapping(mapping);
+ String survey = params.getParameters()!=null?params.getParameters().getCampagne():"test";
+ output = generationService.generateQuestionnaire(inputFile, survey);
+ paramsFinal.close();
+ }
+ else {
+ LOGGER.error(valid.getMessage());
+ throw new EnoParametersException(valid.getMessage());
+ }
+
+ return output;
+
+ }
+
+ /**
+ * It generates File using transformations defined in ENOParameters
+ * @param inputFile : the xml input File (required)
+ * @param params : InputStream of parameters xml file (required)
+ * @param metadata : InputStream of metadata xml file (optional)
+ * @param specificTreatment : InputStream of an xsl sheet (optional)
+ * @param mapping : InputStream of a xml file using in FRModeleColtranePostProcessor (optional)
+ * @return the file resulting from the xslt transformations
+ * @throws Exception
+ */
+ public File generateQuestionnaire(File inputFile, InputStream params, InputStream metadata, InputStream specificTreatment, InputStream mapping) throws Exception {
+ LOGGER.info("Parameterized Generation of questionnaire -- STARTED --");
+ File output=null;
+
+ if(params!=null) {
+ byte[] paramsBytes = IOUtils.toByteArray(params);
+
+ LOGGER.info("First validation ...");
+ ValidationMessage validSchema = schemaValidator.validate(new ByteArrayInputStream(paramsBytes));
+
+ if(validSchema.isValid()) {
+ LOGGER.info(validSchema.getMessage());
+ LOGGER.info("Parameters reading ...");
+ ENOParameters enoParameters = null;
+ enoParameters = valorizatorParameters.getParameters(new ByteArrayInputStream(paramsBytes));
+ LOGGER.info("Parameters read.");
+
+ LOGGER.info("Second validation ...");
+ ValidationMessage valid = validator.validate(enoParameters);
+
+ if(valid.isValid()) {
+ LOGGER.info(valid.getMessage());
+ Pipeline pipeline = enoParameters.getPipeline();
+ GenerationService generationService = pipelineGenerator.setPipeLine(pipeline);
+ ByteArrayOutputStream paramsFinal = valorizatorParameters.mergeParameters(enoParameters);
+ LOGGER.info("Setting paramaters to the pipeline.");
+ generationService.setParameters(paramsFinal);
+ LOGGER.info("Setting metadata to the pipeline.");
+ generationService.setMetadata(metadata);
+ LOGGER.info("Setting specific treamtment to the pipeline.");
+ generationService.setSpecificTreatment(specificTreatment);
+ LOGGER.info("Setting mapping file to the pipeline.");
+ generationService.setMapping(mapping);
+ String survey = enoParameters.getParameters().getCampagne();
+ output = generationService.generateQuestionnaire(inputFile, survey);
+ paramsFinal.close();
+ }
+ else {
+ LOGGER.error(valid.getMessage());
+ throw new EnoParametersException(valid.getMessage());
+ }
+ }
+ else {
+ LOGGER.error(validSchema.getMessage());
+ throw new EnoParametersException(validSchema.getMessage());
+ }
+ }
+ else {
+ String error = getClass().getName() + " needs the parameters file.";
+ LOGGER.error(error);
+ throw new EnoParametersException(error);
+ }
+
+
+ LOGGER.info("Parameterized Generation of questionnaire -- FINISHED --");
+ return output;
+
+ }
+
+ /**
+ * It generates File using transformations defined in ENOParameters
+ * @param inputFile : the xml input File (required)
+ * @param params : xml File of ENOParameter (required)
+ * @param metadata : xml File of metadata (optional)
+ * @param specificTreatment : xsl file of the xsl sheet (optional)
+ * @param mapping : a xml File using in FRModeleColtranePostProcessor (optional)
+ * @return the file resulting from the xslt transformations
+ * @throws Exception
+ */
+ public File generateQuestionnaire(File inputFile, File params, File metadata, File specificTreatment, File mapping) throws Exception{
+ File output = null;
+
+ InputStream parametersIS = null;
+ InputStream metadataIS = null;
+ InputStream specificTreatmentIS = null;
+ InputStream mappingIS = null;
+ parametersIS = params!=null ? FileUtils.openInputStream(params):null;
+ metadataIS = metadata!=null ? FileUtils.openInputStream(metadata):null;
+ specificTreatmentIS = specificTreatment!=null ? FileUtils.openInputStream(specificTreatment):null;
+ mappingIS = mapping!=null ? FileUtils.openInputStream(mapping):null;
+ output = generateQuestionnaire(inputFile, parametersIS, metadataIS, specificTreatmentIS, mappingIS);
+
+ if(parametersIS!=null) {parametersIS.close();};
+ if(metadataIS!=null) {metadataIS.close();};
+ if(specificTreatmentIS!=null) {specificTreatmentIS.close();};
+ if(mappingIS!=null) {mappingIS.close();};
+
+ return output;
+
+ }
+}
diff --git a/src/main/java/fr/insee/eno/exception/EnoGenerationException.java b/src/main/java/fr/insee/eno/exception/EnoGenerationException.java
new file mode 100644
index 000000000..652d90a5b
--- /dev/null
+++ b/src/main/java/fr/insee/eno/exception/EnoGenerationException.java
@@ -0,0 +1,13 @@
+package fr.insee.eno.exception;
+
+/**
+ * EnoGenerationException which is thrown when a error was occured during an xslt tranformation of Eno.
+ */
+public class EnoGenerationException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ public EnoGenerationException(String message) {
+ super(message);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/fr/insee/eno/exception/EnoParametersException.java b/src/main/java/fr/insee/eno/exception/EnoParametersException.java
new file mode 100644
index 000000000..f14b3b3f8
--- /dev/null
+++ b/src/main/java/fr/insee/eno/exception/EnoParametersException.java
@@ -0,0 +1,13 @@
+package fr.insee.eno.exception;
+
+/**
+ * EnoParametersException which is thrown when a error was occured during validation of the parameters.
+ */
+public class EnoParametersException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ public EnoParametersException(String message) {
+ super(message);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/fr/insee/eno/generation/DDI2FRGenerator.java b/src/main/java/fr/insee/eno/generation/DDI2FRGenerator.java
index 55501dc31..bae86c912 100644
--- a/src/main/java/fr/insee/eno/generation/DDI2FRGenerator.java
+++ b/src/main/java/fr/insee/eno/generation/DDI2FRGenerator.java
@@ -10,16 +10,15 @@
import org.slf4j.LoggerFactory;
import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
import fr.insee.eno.transform.xsl.XslParameters;
import fr.insee.eno.transform.xsl.XslTransformation;
public class DDI2FRGenerator implements Generator {
-
private static final Logger logger = LoggerFactory.getLogger(DDI2FRGenerator.class);
- // FIXME Inject !
- private static XslTransformation saxonService = new XslTransformation();
+ private XslTransformation saxonService = new XslTransformation();
@Override
public File generate(File finalInput, byte[] parameters, String surveyName) throws Exception {
@@ -41,26 +40,20 @@ public File generate(File finalInput, byte[] parameters, String surveyName) thro
InputStream isFinalInput = FileUtils.openInputStream(finalInput);
OutputStream osOutputBasicForm = FileUtils.openOutputStream(new File(outputBasicFormPath));
-
- saxonService.transformDDI2FR(isFinalInput, osOutputBasicForm, isTRANSFORMATIONS_DDI2FR_DDI2FR_XSL,
- parameters);
+ try {
+ saxonService.transformDDI2FR(isFinalInput, osOutputBasicForm, isTRANSFORMATIONS_DDI2FR_DDI2FR_XSL,
+ parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the "+in2out()+" transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
isTRANSFORMATIONS_DDI2FR_DDI2FR_XSL.close();
isFinalInput.close();
osOutputBasicForm.close();
- String outputForm = Constants.TEMP_FOLDER_PATH + "/" + surveyName + "/" + formNameFolder + "/form/form.xhtml";
-
- InputStream isOutputBasicFormPath = FileUtils.openInputStream(new File(outputBasicFormPath));
- OutputStream osOutputForm = FileUtils.openOutputStream(new File(outputForm));
- InputStream isBROWSING_TEMPLATE_XSL = Constants.getInputStreamFromPath(Constants.BROWSING_FR_TEMPLATE_XSL);
- saxonService.transformBrowsingDDI2FR(isOutputBasicFormPath, osOutputForm, isBROWSING_TEMPLATE_XSL,
- Constants.LABEL_FOLDER);
- isOutputBasicFormPath.close();
- osOutputForm.close();
- isBROWSING_TEMPLATE_XSL.close();
-
- return new File(outputForm);
+ return new File(outputBasicFormPath);
}
/**
diff --git a/src/main/java/fr/insee/eno/generation/DDI2JSGenerator.java b/src/main/java/fr/insee/eno/generation/DDI2JSGenerator.java
index 5daca617c..81470e1b9 100644
--- a/src/main/java/fr/insee/eno/generation/DDI2JSGenerator.java
+++ b/src/main/java/fr/insee/eno/generation/DDI2JSGenerator.java
@@ -10,6 +10,7 @@
import org.slf4j.LoggerFactory;
import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
import fr.insee.eno.transform.xsl.XslParameters;
import fr.insee.eno.transform.xsl.XslTransformation;
@@ -17,8 +18,7 @@ public class DDI2JSGenerator implements Generator {
private static final Logger logger = LoggerFactory.getLogger(DDI2JSGenerator.class);
- // FIXME Inject !
- private static XslTransformation saxonService = new XslTransformation();
+ private XslTransformation saxonService = new XslTransformation();
@Override
public File generate(File finalInput, byte[] parameters, String surveyName) throws Exception {
@@ -35,14 +35,21 @@ public File generate(File finalInput, byte[] parameters, String surveyName) thro
logger.debug("Output folder for basic-form : " + outputBasicFormPath);
String outputForm = outputBasicFormPath + "/form.xml";
+
InputStream isTRANSFORMATIONS_DDI2JS_DDI2JS_XSL = Constants
.getInputStreamFromPath(Constants.TRANSFORMATIONS_DDI2JS_DDI2JS_XSL);
InputStream isFinalInput = FileUtils.openInputStream(finalInput);
OutputStream osOutputFile = FileUtils.openOutputStream(new File(outputForm));
-
- saxonService.transformDDI2JS(isFinalInput, osOutputFile, isTRANSFORMATIONS_DDI2JS_DDI2JS_XSL, parameters);
-
+
+ try {
+ saxonService.transformDDI2JS(isFinalInput, osOutputFile, isTRANSFORMATIONS_DDI2JS_DDI2JS_XSL, parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the "+in2out()+" transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
isTRANSFORMATIONS_DDI2JS_DDI2JS_XSL.close();
isFinalInput.close();
diff --git a/src/main/java/fr/insee/eno/generation/DDI2ODTGenerator.java b/src/main/java/fr/insee/eno/generation/DDI2ODTGenerator.java
index df3071916..7f18958f5 100644
--- a/src/main/java/fr/insee/eno/generation/DDI2ODTGenerator.java
+++ b/src/main/java/fr/insee/eno/generation/DDI2ODTGenerator.java
@@ -10,6 +10,7 @@
import org.slf4j.LoggerFactory;
import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
import fr.insee.eno.transform.xsl.XslParameters;
import fr.insee.eno.transform.xsl.XslTransformation;
@@ -17,8 +18,7 @@ public class DDI2ODTGenerator implements Generator {
private static final Logger logger = LoggerFactory.getLogger(DDI2ODTGenerator.class);
- // FIXME Inject !
- private static XslTransformation saxonService = new XslTransformation();
+ private XslTransformation saxonService = new XslTransformation();
@Override
public File generate(File finalInput, byte[] parameters, String surveyName) throws Exception {
@@ -34,15 +34,21 @@ public File generate(File finalInput, byte[] parameters, String surveyName) thro
outputBasicFormPath = Constants.TEMP_FOLDER_PATH + "/" + surveyName + "/" + formNameFolder + "/form";
logger.debug("Output folder for basic-form : " + outputBasicFormPath);
- String outputForm = outputBasicFormPath + "/form.odt";
+ String outputForm = outputBasicFormPath + "/form.fodt";
InputStream isTRANSFORMATIONS_DDI2ODT_DDI2ODT_XSL = Constants
.getInputStreamFromPath(Constants.TRANSFORMATIONS_DDI2ODT_DDI2ODT_XSL);
InputStream isFinalInput = FileUtils.openInputStream(finalInput);
OutputStream osOutputFile = FileUtils.openOutputStream(new File(outputForm));
- saxonService.transformDDI2ODT(isFinalInput, osOutputFile, isTRANSFORMATIONS_DDI2ODT_DDI2ODT_XSL, parameters);
-
+ try {
+ saxonService.transformDDI2ODT(isFinalInput, osOutputFile, isTRANSFORMATIONS_DDI2ODT_DDI2ODT_XSL, parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the "+in2out()+" transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
isTRANSFORMATIONS_DDI2ODT_DDI2ODT_XSL.close();
isFinalInput.close();
diff --git a/src/main/java/fr/insee/eno/generation/DDI2PDFGenerator.java b/src/main/java/fr/insee/eno/generation/DDI2PDFGenerator.java
index 37db8093f..31396d1c0 100644
--- a/src/main/java/fr/insee/eno/generation/DDI2PDFGenerator.java
+++ b/src/main/java/fr/insee/eno/generation/DDI2PDFGenerator.java
@@ -10,6 +10,7 @@
import org.slf4j.LoggerFactory;
import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
import fr.insee.eno.transform.xsl.XslParameters;
import fr.insee.eno.transform.xsl.XslTransformation;
@@ -17,8 +18,7 @@ public class DDI2PDFGenerator implements Generator {
private static final Logger logger = LoggerFactory.getLogger(DDI2PDFGenerator.class);
- // FIXME Inject !
- private static XslTransformation saxonService = new XslTransformation();
+ private XslTransformation saxonService = new XslTransformation();
@Override
public File generate(File finalInput, byte[] parameters, String surveyName) throws Exception {
@@ -41,8 +41,14 @@ public File generate(File finalInput, byte[] parameters, String surveyName) thro
InputStream isFinalInput = FileUtils.openInputStream(finalInput);
OutputStream osOutputForm = FileUtils.openOutputStream(new File(outputForm));
- saxonService.transformDDI2PDF(isFinalInput, osOutputForm, isTRANSFORMATIONS_DDI2PDF_DDI2PDF_XSL, parameters);
+ try {
+ saxonService.transformDDI2PDF(isFinalInput, osOutputForm, isTRANSFORMATIONS_DDI2PDF_DDI2PDF_XSL, parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the "+in2out()+" transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
isTRANSFORMATIONS_DDI2PDF_DDI2PDF_XSL.close();
isFinalInput.close();
diff --git a/src/main/java/fr/insee/eno/generation/DDI2PoguesXMLGenerator.java b/src/main/java/fr/insee/eno/generation/DDI2PoguesXMLGenerator.java
new file mode 100644
index 000000000..679d1e53e
--- /dev/null
+++ b/src/main/java/fr/insee/eno/generation/DDI2PoguesXMLGenerator.java
@@ -0,0 +1,39 @@
+package fr.insee.eno.generation;
+
+import java.io.File;
+
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.transform.xsl.XslParameters;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class DDI2PoguesXMLGenerator implements Generator {
+
+ private static final Logger logger = LoggerFactory.getLogger(DDI2PoguesXMLGenerator.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File generate(File finalInput, byte[] parameters, String surveyName) throws Exception {
+ //TODO:implement this generator
+ return null;
+ }
+
+ /**
+ * @param finalInput
+ * @return
+ */
+ private String getFormNameFolder(File finalInput) {
+ String formNameFolder;
+ formNameFolder = FilenameUtils.getBaseName(finalInput.getAbsolutePath());
+ formNameFolder = FilenameUtils.removeExtension(formNameFolder);
+ formNameFolder = formNameFolder.replace(XslParameters.TITLED_EXTENSION, "");
+ return formNameFolder;
+ }
+
+ public String in2out() {
+ return "xml-pogues2ddi";
+ }
+}
diff --git a/src/main/java/fr/insee/eno/generation/Generator.java b/src/main/java/fr/insee/eno/generation/Generator.java
index d61ee1775..a8c17e459 100644
--- a/src/main/java/fr/insee/eno/generation/Generator.java
+++ b/src/main/java/fr/insee/eno/generation/Generator.java
@@ -30,9 +30,7 @@ public interface Generator {
* This method return in2out implementation
*
* @return the in2out implementation
- * @throws Exception
- * Generic exception
*/
- public String in2out() throws Exception;
+ public String in2out() ;
}
diff --git a/src/main/java/fr/insee/eno/generation/IdentityGenerator.java b/src/main/java/fr/insee/eno/generation/IdentityGenerator.java
new file mode 100644
index 000000000..fc0e3bf77
--- /dev/null
+++ b/src/main/java/fr/insee/eno/generation/IdentityGenerator.java
@@ -0,0 +1,47 @@
+package fr.insee.eno.generation;
+
+import java.io.File;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.transform.xsl.XslParameters;
+
+public class IdentityGenerator implements Generator {
+
+ private static final Logger logger = LoggerFactory.getLogger(IdentityGenerator.class);
+
+ @Override
+ public File generate(File finalInput, byte[] parameters, String surveyName) throws Exception {
+ logger.info("Identity generation : START");
+ logger.info("Identity generation : simply copying input file in another file");
+ logger.debug("Arguments : finalInput : " + finalInput + " surveyName " + surveyName);
+ String formNameFolder = null;
+ String outputBasicFormPath = null;
+
+ formNameFolder = getFormNameFolder(finalInput);
+
+ logger.debug("formNameFolder : " + formNameFolder);
+ outputBasicFormPath = Constants.TEMP_FOLDER_PATH + "/" + surveyName + "/" + formNameFolder + "/form";
+ logger.debug("Output folder for basic-form : " + outputBasicFormPath);
+ String outputForm = outputBasicFormPath + "/form.xml";
+ FileUtils.copyFile(finalInput, new File(outputForm));
+ logger.info("Identity generation : END");
+ return new File(outputForm);
+ }
+
+ private String getFormNameFolder(File finalInput) {
+ String formNameFolder;
+ formNameFolder = FilenameUtils.getBaseName(finalInput.getAbsolutePath());
+ formNameFolder = FilenameUtils.removeExtension(formNameFolder);
+ formNameFolder = formNameFolder.replace(XslParameters.TITLED_EXTENSION, "");
+ return formNameFolder;
+ }
+
+ public String in2out() {
+ return "identity";
+ }
+}
diff --git a/src/main/java/fr/insee/eno/generation/PoguesXML2DDIGenerator.java b/src/main/java/fr/insee/eno/generation/PoguesXML2DDIGenerator.java
index a11f44483..1ade4dc5d 100644
--- a/src/main/java/fr/insee/eno/generation/PoguesXML2DDIGenerator.java
+++ b/src/main/java/fr/insee/eno/generation/PoguesXML2DDIGenerator.java
@@ -10,6 +10,7 @@
import org.slf4j.LoggerFactory;
import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
import fr.insee.eno.transform.xsl.XslParameters;
import fr.insee.eno.transform.xsl.XslTransformation;
@@ -17,8 +18,7 @@ public class PoguesXML2DDIGenerator implements Generator {
private static final Logger logger = LoggerFactory.getLogger(PoguesXML2DDIGenerator.class);
- // FIXME Inject !
- private static XslTransformation saxonService = new XslTransformation();
+ private XslTransformation saxonService = new XslTransformation();
@Override
public File generate(File finalInput, byte[] parameters, String surveyName) throws Exception {
@@ -40,8 +40,14 @@ public File generate(File finalInput, byte[] parameters, String surveyName) thro
InputStream isFinalInput = FileUtils.openInputStream(finalInput);
OutputStream osOutputBasicForm = FileUtils.openOutputStream(new File(outputBasicFormPath));
- saxonService.transformPoguesXML2DDI(isFinalInput, osOutputBasicForm,
- isTRANSFORMATIONS_POGUES_XML2DDI_POGUES_XML2DDI_XSL, parameters);
+ try {
+ saxonService.transformPoguesXML2DDI(isFinalInput, osOutputBasicForm,
+ isTRANSFORMATIONS_POGUES_XML2DDI_POGUES_XML2DDI_XSL, parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the "+in2out()+" transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
isTRANSFORMATIONS_POGUES_XML2DDI_POGUES_XML2DDI_XSL.close();
isFinalInput.close();
diff --git a/src/main/java/fr/insee/eno/params/ValorizatorParameters.java b/src/main/java/fr/insee/eno/params/ValorizatorParameters.java
new file mode 100644
index 000000000..884582621
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/ValorizatorParameters.java
@@ -0,0 +1,43 @@
+package fr.insee.eno.params;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.InputStream;
+
+import fr.insee.eno.parameters.ENOParameters;
+
+public interface ValorizatorParameters {
+
+ /**
+ *
+ * @param enoParameters
+ * @return ByteArrayOutputStream which represents xml parameter file
+ * @throws Exception
+ */
+ ByteArrayOutputStream mergeParameters(ENOParameters enoParameters) throws Exception;
+
+ /**
+ *
+ * @param enoParameters java object
+ * @return ENOParameters object which is the result of the merging of default ENOParameters object and the param
+ * @throws Exception
+ */
+ ENOParameters mergeEnoParameters(ENOParameters enoParameters) throws Exception;
+
+ /**
+ *
+ * @param inputStream which represents xml parameter file
+ * @return ENOParameters object which represents xml file according to xsd schema
+ * @throws Exception
+ */
+ ENOParameters getParameters(InputStream inputStream) throws Exception;
+
+ /**
+ *
+ * @param enoParameters xml file
+ * @return File (xml) which is the result of the merging of default xml parameter file and the param
+ * @throws Exception
+ */
+ File mergeParameters(File enoParameters) throws Exception;
+
+}
diff --git a/src/main/java/fr/insee/eno/params/ValorizatorParametersImpl.java b/src/main/java/fr/insee/eno/params/ValorizatorParametersImpl.java
new file mode 100644
index 000000000..a40b49206
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/ValorizatorParametersImpl.java
@@ -0,0 +1,182 @@
+package fr.insee.eno.params;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.ENOParameters;
+import fr.insee.eno.parameters.LevelAbstract;
+import fr.insee.eno.parameters.LevelQuestion;
+import fr.insee.eno.parameters.LevelSequence;
+import fr.insee.eno.transform.xsl.ClasspathURIResolver;
+import fr.insee.eno.transform.xsl.EnoErrorListener;
+import fr.insee.eno.transform.xsl.XslParameters;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+
+public class ValorizatorParametersImpl implements ValorizatorParameters {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ValorizatorParametersImpl.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+
+ @Override
+ public ByteArrayOutputStream mergeParameters(ENOParameters enoParameters) throws JAXBException, IllegalArgumentException, IllegalAccessException, IOException {
+
+ ByteArrayOutputStream tempByteArrayOutputStream = new ByteArrayOutputStream();
+
+ JAXBContext context = JAXBContext.newInstance(ENOParameters.class);
+ Marshaller jaxbMarshaller = context.createMarshaller();
+ jaxbMarshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
+ jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ jaxbMarshaller.marshal(enoParameters, tempByteArrayOutputStream);
+
+ InputStream PARAM_XSL = Constants.getInputStreamFromPath(Constants.MERGE_PARAMETERS_XSL);
+ InputStream inputStream = new ByteArrayInputStream(tempByteArrayOutputStream.toByteArray());
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+
+ try {
+ saxonService.mergeEnoParameters(inputStream, outputStream, PARAM_XSL);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the valorisation of parameters. "+e.getMessage();
+ LOGGER.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ tempByteArrayOutputStream.close();
+ inputStream.close();
+ PARAM_XSL.close();
+
+ return outputStream;
+ }
+
+ @Override
+ public File mergeParameters(File enoParameters) throws JAXBException, IllegalArgumentException, IllegalAccessException, IOException {
+ File finalParam = Constants.TEMP_FILE_PARAMS("new-params.xml");
+
+ InputStream PARAM_XSL = Constants.getInputStreamFromPath(Constants.MERGE_PARAMETERS_XSL);
+ InputStream inputStream = FileUtils.openInputStream(enoParameters);
+ OutputStream outputStream = FileUtils.openOutputStream(finalParam);
+
+ try {
+ saxonService.mergeEnoParameters(inputStream, outputStream, PARAM_XSL);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the valorisation of parameters. "+e.getMessage();
+ LOGGER.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ PARAM_XSL.close();
+
+ return finalParam;
+ }
+
+ @Override
+ public ENOParameters mergeEnoParameters(ENOParameters enoParameters) throws JAXBException, IOException, IllegalArgumentException, IllegalAccessException {
+ LOGGER.info("Merging eno Parameters");
+ ByteArrayOutputStream outputStream = this.mergeParameters(enoParameters);
+ ENOParameters finalEnoParam = this.getParameters(new ByteArrayInputStream(outputStream.toByteArray()));
+ outputStream.close();
+ return finalEnoParam;
+ }
+
+
+
+
+ /**
+ *
+ * @return the java object representing parameters of default parameters xml file
+ * @throws JAXBException
+ * @throws IOException
+ */
+ public ENOParameters getDefaultParameters() throws JAXBException, IOException {
+ InputStream xmlParameters = Constants.getInputStreamFromPath(Constants.PARAMETERS_DEFAULT_XML);
+ StreamSource xml = new StreamSource(xmlParameters);
+ return this.getParameters(xml);
+ }
+
+
+ @Override
+ public ENOParameters getParameters(InputStream inputStream) throws JAXBException, UnsupportedEncodingException {
+
+ if (inputStream == null)
+ return null;
+
+ LOGGER.debug("Preparing to translate from XML to java");
+
+
+
+ JAXBContext context = JAXBContext.newInstance(ENOParameters.class);
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+ unmarshaller.setListener(new UnmarshallLogger());
+
+ ENOParameters enoParameters = (ENOParameters) unmarshaller.unmarshal(inputStream);
+
+ return enoParameters;
+ }
+
+ public ENOParameters getParameters(StreamSource xmlStream) throws JAXBException, UnsupportedEncodingException {
+
+ if (xmlStream == null)
+ return null;
+
+ LOGGER.debug("Preparing to translate from XML to java");
+
+ JAXBContext context = JAXBContext.newInstance(ENOParameters.class);
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+ unmarshaller.setListener(new UnmarshallLogger());
+
+ ENOParameters enoParameters = (ENOParameters) unmarshaller.unmarshal(xmlStream);
+
+ return enoParameters;
+ }
+
+ private class UnmarshallLogger extends Unmarshaller.Listener {
+
+ @Override
+ public void beforeUnmarshal(Object target, Object parent) {
+ LOGGER.debug("Before unmarshalling object " + target);
+ }
+
+ @Override
+ public void afterUnmarshal(Object target, Object parent) {
+ LOGGER.debug("After unmarshalling object " + target);
+ }
+ }
+
+ public List getAllFields(List fields, Class> type) {
+ fields.addAll(Arrays.asList(type.getDeclaredFields()));
+ if (type.getSuperclass() != null) {
+ getAllFields(fields, type.getSuperclass());
+ }
+
+ return fields;
+ }
+}
diff --git a/src/main/java/fr/insee/eno/params/pipeline/PipeLineGeneratorImpl.java b/src/main/java/fr/insee/eno/params/pipeline/PipeLineGeneratorImpl.java
new file mode 100644
index 000000000..c1b375891
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/pipeline/PipeLineGeneratorImpl.java
@@ -0,0 +1,325 @@
+package fr.insee.eno.params.pipeline;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.GenerationService;
+import fr.insee.eno.generation.DDI2FRGenerator;
+import fr.insee.eno.generation.DDI2JSGenerator;
+import fr.insee.eno.generation.DDI2ODTGenerator;
+import fr.insee.eno.generation.DDI2PDFGenerator;
+import fr.insee.eno.generation.DDI2PoguesXMLGenerator;
+import fr.insee.eno.generation.Generator;
+import fr.insee.eno.generation.IdentityGenerator;
+import fr.insee.eno.generation.PoguesXML2DDIGenerator;
+import fr.insee.eno.parameters.InFormat;
+import fr.insee.eno.parameters.OutFormat;
+import fr.insee.eno.parameters.Pipeline;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.parameters.PreProcessing;
+import fr.insee.eno.postprocessing.NoopPostprocessor;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.postprocessing.ddi.DDIMarkdown2XhtmlPostprocessor;
+import fr.insee.eno.postprocessing.fr.FRBrowsingPostprocessor;
+import fr.insee.eno.postprocessing.fr.FREditPatronPostprocessor;
+import fr.insee.eno.postprocessing.fr.FRFixAdherencePostprocessor;
+import fr.insee.eno.postprocessing.fr.FRIdentificationPostprocessor;
+import fr.insee.eno.postprocessing.fr.FRInsertEndPostprocessor;
+import fr.insee.eno.postprocessing.fr.FRInsertGenericQuestionsPostprocessor;
+import fr.insee.eno.postprocessing.fr.FRInsertWelcomePostprocessor;
+import fr.insee.eno.postprocessing.fr.FRModeleColtranePostprocessor;
+import fr.insee.eno.postprocessing.fr.FRSpecificTreatmentPostprocessor;
+import fr.insee.eno.postprocessing.js.JSExternalizeVariablesPostprocessor;
+import fr.insee.eno.postprocessing.js.JSInsertGenericQuestionsPostprocessor;
+import fr.insee.eno.postprocessing.js.JSSortComponentsPostprocessor;
+import fr.insee.eno.postprocessing.js.JSVTLParserPostprocessor;
+import fr.insee.eno.postprocessing.pdf.PDFEditStructurePagesPostprocessor;
+import fr.insee.eno.postprocessing.pdf.PDFInsertAccompanyingMailsPostprocessor;
+import fr.insee.eno.postprocessing.pdf.PDFInsertCoverPagePostprocessor;
+import fr.insee.eno.postprocessing.pdf.PDFInsertEndQuestionPostprocessor;
+import fr.insee.eno.postprocessing.pdf.PDFMailingPostprocessor;
+import fr.insee.eno.postprocessing.pdf.PDFSpecificTreatmentPostprocessor;
+import fr.insee.eno.postprocessing.pdf.PDFTableColumnPostprocessorFake;
+import fr.insee.eno.preprocessing.DDI32ToDDI33Preprocessor;
+import fr.insee.eno.preprocessing.DDICleaningPreprocessor;
+import fr.insee.eno.preprocessing.DDIDereferencingPreprocessor;
+import fr.insee.eno.preprocessing.DDIMappingPreprocessor;
+import fr.insee.eno.preprocessing.DDITitlingPreprocessor;
+import fr.insee.eno.preprocessing.PoguesXMLPreprocessorGoToTreatment;
+import fr.insee.eno.preprocessing.Preprocessor;
+
+public class PipeLineGeneratorImpl implements PipelineGenerator {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(PipeLineGeneratorImpl.class);
+
+ // In2Out Generator
+ private IdentityGenerator identityGenerator = new IdentityGenerator();
+
+ private DDI2FRGenerator ddi2frGenerator = new DDI2FRGenerator();
+
+ private DDI2JSGenerator ddi2jsGenerator = new DDI2JSGenerator();
+
+ private DDI2ODTGenerator ddi2odtGenerator = new DDI2ODTGenerator();
+
+ private DDI2PDFGenerator ddi2pdfGenerator = new DDI2PDFGenerator();
+
+ private DDI2PoguesXMLGenerator ddi2poguesXmlGenerator = new DDI2PoguesXMLGenerator();
+
+ private PoguesXML2DDIGenerator poguesXml2ddiGenerator = new PoguesXML2DDIGenerator();
+
+ // PreProcessing
+ private DDIDereferencingPreprocessor ddiDereferencing = new DDIDereferencingPreprocessor();
+
+ private DDICleaningPreprocessor ddiCleaning = new DDICleaningPreprocessor();
+
+ private DDITitlingPreprocessor ddiTitling = new DDITitlingPreprocessor();
+
+ private DDIMappingPreprocessor ddiMapping = new DDIMappingPreprocessor();
+
+ private PoguesXMLPreprocessorGoToTreatment poguesXmlGoTo = new PoguesXMLPreprocessorGoToTreatment();
+
+ private DDI32ToDDI33Preprocessor ddi32ToDDI33Preprocessor = new DDI32ToDDI33Preprocessor();
+
+ // PostProcessing
+ private DDIMarkdown2XhtmlPostprocessor ddiMW2XHTML = new DDIMarkdown2XhtmlPostprocessor();
+
+ private FRBrowsingPostprocessor frBrowsing = new FRBrowsingPostprocessor();
+
+ private FREditPatronPostprocessor frEditPatron = new FREditPatronPostprocessor();
+
+ private FRFixAdherencePostprocessor frFixAdherence = new FRFixAdherencePostprocessor();
+
+ private FRIdentificationPostprocessor frIdentification = new FRIdentificationPostprocessor();
+
+ private FRInsertEndPostprocessor frInsertEnd = new FRInsertEndPostprocessor();
+
+ private FRInsertGenericQuestionsPostprocessor frInsertGenericQuestions = new FRInsertGenericQuestionsPostprocessor();
+
+ private FRInsertWelcomePostprocessor frInsertWelcome = new FRInsertWelcomePostprocessor();
+
+ private FRModeleColtranePostprocessor frModeleColtrane = new FRModeleColtranePostprocessor();
+
+ private FRSpecificTreatmentPostprocessor frSpecificTreatment = new FRSpecificTreatmentPostprocessor();
+
+ private PDFEditStructurePagesPostprocessor pdfEditStructurePages = new PDFEditStructurePagesPostprocessor();
+
+ private PDFInsertAccompanyingMailsPostprocessor pdfInsertAccompanyingMails = new PDFInsertAccompanyingMailsPostprocessor();
+
+ private PDFInsertCoverPagePostprocessor pdfInsertCoverPage = new PDFInsertCoverPagePostprocessor();
+
+ private PDFInsertEndQuestionPostprocessor pdfInsertEndQuestion = new PDFInsertEndQuestionPostprocessor();
+
+ private PDFMailingPostprocessor pdfMailing = new PDFMailingPostprocessor();
+
+ private PDFSpecificTreatmentPostprocessor pdfSpecificTreatment = new PDFSpecificTreatmentPostprocessor();
+
+ private PDFTableColumnPostprocessorFake pdfTableColumn = new PDFTableColumnPostprocessorFake();
+
+ private JSInsertGenericQuestionsPostprocessor jsInsertGenericQuestions = new JSInsertGenericQuestionsPostprocessor();
+
+ private JSExternalizeVariablesPostprocessor jsExternalizeVariables = new JSExternalizeVariablesPostprocessor();
+
+ private JSSortComponentsPostprocessor jsSortComponents = new JSSortComponentsPostprocessor();
+
+ private JSVTLParserPostprocessor jsvtlParser = new JSVTLParserPostprocessor();
+
+ private NoopPostprocessor noop = new NoopPostprocessor();
+
+
+ @Override
+ public GenerationService setPipeLine(Pipeline pipeline) throws Exception {
+ LOGGER.info("Creating new pipeline...");
+ Preprocessor[] preprocessors = setPreProcessors(pipeline.getPreProcessing());
+ Generator generator = setGenerator(pipeline.getInFormat(), pipeline.getOutFormat());
+ Postprocessor[] postprocessors = setPostProcessors(pipeline.getPostProcessing());
+
+ LOGGER.info("PreProccesings : "+Arrays.toString(preprocessors));
+ LOGGER.info("Core generation : "+generator.in2out());
+ LOGGER.info("PostProccesings : "+Arrays.toString(postprocessors));
+ return new GenerationService(preprocessors, generator, postprocessors);
+ }
+
+ @Override
+ public Postprocessor[] setPostProcessors(List postProcessings) {
+ List postprocessors = new ArrayList();
+ if(!postProcessings.isEmpty()) {
+ for(PostProcessing postProcessing : postProcessings) {
+ postprocessors.add(getPostPorcessor(postProcessing));
+ }
+ }
+ else {
+ postprocessors.add(new NoopPostprocessor());
+ }
+
+ return postprocessors.toArray(new Postprocessor[postprocessors.size()]);
+ }
+
+ @Override
+ public Preprocessor[] setPreProcessors(List preProcessings) {
+ List preprocessors = new ArrayList();
+ for(PreProcessing preProcessing : preProcessings) {
+ preprocessors.add(getPrePorcessor(preProcessing));
+ }
+ return preprocessors.toArray(new Preprocessor[preprocessors.size()]);
+ }
+
+ @Override
+ public Generator setGenerator(InFormat inFormat, OutFormat outFormat) {
+ Generator generator=null;
+
+ switch (inFormat) {
+ case DDI:
+ switch (outFormat) {
+ case DDI:
+ generator = identityGenerator;
+ break;
+ case FR:
+ generator = ddi2frGenerator;
+ break;
+ case JS:
+ generator = ddi2jsGenerator;
+ break;
+ case ODT:
+ generator = ddi2odtGenerator;
+ break;
+ case PDF:
+ generator = ddi2pdfGenerator;
+ break;
+ case POGUES_XML:
+ generator = ddi2poguesXmlGenerator;
+ break;
+ }
+ break;
+ case POGUES_XML:
+ switch (outFormat) {
+ case DDI:
+ generator = poguesXml2ddiGenerator;
+ break;
+ default:
+ generator = identityGenerator;
+ break;
+ }
+ break;
+ case FR:
+ generator = identityGenerator;
+ break;
+ }
+ return generator;
+ }
+
+ @Override
+ public Postprocessor getPostPorcessor(PostProcessing postProcessing) {
+ Postprocessor postprocessor = null;
+ switch (postProcessing) {
+ case DDI_MARKDOWN_TO_XHTML:
+ postprocessor = ddiMW2XHTML;
+ break;
+ case FR_BROWSING:
+ postprocessor = frBrowsing;
+ break;
+ case FR_EDIT_PATRON:
+ postprocessor = frEditPatron;
+ break;
+ case FR_FIX_ADHERENCE:
+ postprocessor = frFixAdherence;
+ break;
+ case FR_IDENTIFICATION:
+ postprocessor = frIdentification;
+ break;
+ case FR_INSERT_END:
+ postprocessor = frInsertEnd;
+ break;
+ case FR_INSERT_GENERIC_QUESTIONS:
+ postprocessor = frInsertGenericQuestions;
+ break;
+ case FR_INSERT_WELCOME:
+ postprocessor = frInsertWelcome;
+ break;
+ case FR_MODELE_COLTRANE:
+ postprocessor = frModeleColtrane;
+ break;
+ case FR_SPECIFIC_TREATMENT:
+ postprocessor = frSpecificTreatment;
+ break;
+ case PDF_EDIT_STRUCTURE_PAGES:
+ postprocessor = pdfEditStructurePages;
+ break;
+ case PDF_INSERT_ACCOMPANYING_MAILS:
+ postprocessor = pdfInsertAccompanyingMails;
+ break;
+ case PDF_INSERT_COVER_PAGE:
+ postprocessor = pdfInsertCoverPage;
+ break;
+ case PDF_INSERT_END_QUESTION:
+ postprocessor = pdfInsertEndQuestion;
+ break;
+ case PDF_MAILING:
+ postprocessor = pdfMailing;
+ break;
+ case PDF_SPECIFIC_TREATMENT:
+ postprocessor = pdfSpecificTreatment;
+ break;
+ case PDF_TABLE_COLUMN:
+ postprocessor = pdfTableColumn;
+ break;
+ case JS_EXTERNALIZE_VARIABLES:
+ postprocessor = jsExternalizeVariables;
+ break;
+ case JS_INSERT_GENERIC_QUESTIONS:
+ postprocessor= jsInsertGenericQuestions;
+ break;
+ case JS_SORT_COMPONENTS:
+ postprocessor = jsSortComponents;
+ break;
+ case JS_VTL_PARSER:
+ postprocessor = jsvtlParser;
+ break;
+ case JS_SPECIFIC_TREATMENT:
+ postprocessor = noop;
+ break;
+ case DDI_SPECIFIC_TREATMENT:
+ postprocessor = noop;
+ break;
+ case ODT_SPECIFIC_TREATMENT:
+ postprocessor = noop;
+ break;
+ }
+ return postprocessor;
+ }
+
+ @Override
+ public Preprocessor getPrePorcessor(PreProcessing preProcessing) {
+ Preprocessor preprocessor = null;
+ switch (preProcessing) {
+ case DDI_32_TO_DDI_33:
+ preprocessor = ddi32ToDDI33Preprocessor;
+ break;
+ case DDI_DEREFERENCING:
+ preprocessor = ddiDereferencing;
+ break;
+ case DDI_CLEANING:
+ preprocessor = ddiCleaning;
+ break;
+ case DDI_TITLING:
+ preprocessor = ddiTitling;
+ break;
+ case DDI_MAPPING:
+ preprocessor = ddiMapping;
+ break;
+ case POGUES_XML_GOTO_2_ITE:
+ preprocessor = poguesXmlGoTo;
+ break;
+ case POGUES_XML_SUPPRESSION_GOTO:
+ break;
+ case POGUES_XML_TWEAK_TO_MERGE_EQUIVALENT_ITE:
+ break;
+ }
+ return preprocessor;
+ }
+
+
+}
diff --git a/src/main/java/fr/insee/eno/params/pipeline/PipelineGenerator.java b/src/main/java/fr/insee/eno/params/pipeline/PipelineGenerator.java
new file mode 100644
index 000000000..2d6707b0f
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/pipeline/PipelineGenerator.java
@@ -0,0 +1,61 @@
+package fr.insee.eno.params.pipeline;
+
+import java.util.List;
+
+import fr.insee.eno.GenerationService;
+import fr.insee.eno.generation.Generator;
+import fr.insee.eno.parameters.InFormat;
+import fr.insee.eno.parameters.OutFormat;
+import fr.insee.eno.parameters.Pipeline;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.parameters.PreProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.preprocessing.Preprocessor;
+
+public interface PipelineGenerator {
+
+ /**
+ *
+ * @param pipeline
+ * @return a GenerationService with the Eno transformation (PreProcessor, Generator and PostProcessor) according to the param.
+ * @throws Exception
+ */
+ public GenerationService setPipeLine(Pipeline pipeline) throws Exception;
+
+ /**
+ *
+ * @param postProcessings
+ * @return a list of Postprocessor (Java class) according to a List of PostProcessing (Enum)
+ */
+ public Postprocessor[] setPostProcessors(List postProcessings);
+
+ /**
+ *
+ * @param a list of Preprocessor (Java class) according to a List of PreProcessing (Enum)
+ * @return
+ */
+ public Preprocessor[] setPreProcessors(List preProcessings);
+
+ /**
+ *
+ * @param inFormat
+ * @param outFormat
+ * @return the Generator according to the inFormat(Enum) and outFormat(Enum)
+ */
+ public Generator setGenerator(InFormat inFormat, OutFormat outFormat);
+
+ /**
+ * Linking function : Postprocessor with PostProcessing
+ * @param postProcessing
+ * @return the Postprocessor java class according to PostProcessing(Enum)
+ */
+ public Postprocessor getPostPorcessor(PostProcessing postProcessing);
+
+ /**
+ * Linking function : Preprocessor with PreProcessing
+ * @param postProcessing
+ * @return the Preprocessor java class according to PreProcessing(Enum)
+ */
+ public Preprocessor getPrePorcessor(PreProcessing preProcessing);
+
+}
diff --git a/src/main/java/fr/insee/eno/params/validation/SchemaValidator.java b/src/main/java/fr/insee/eno/params/validation/SchemaValidator.java
new file mode 100644
index 000000000..e6ca928fa
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/validation/SchemaValidator.java
@@ -0,0 +1,15 @@
+package fr.insee.eno.params.validation;
+
+import java.io.InputStream;
+
+public interface SchemaValidator {
+
+ /**
+ *
+ * @param paramsIS
+ * @return
+ */
+ ValidationMessage validate(InputStream paramsIS);
+
+
+}
diff --git a/src/main/java/fr/insee/eno/params/validation/SchemaValidatorImpl.java b/src/main/java/fr/insee/eno/params/validation/SchemaValidatorImpl.java
new file mode 100644
index 000000000..e02bfb8cc
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/validation/SchemaValidatorImpl.java
@@ -0,0 +1,78 @@
+package fr.insee.eno.params.validation;
+
+import java.io.InputStream;
+
+import javax.xml.XMLConstants;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.xml.sax.SAXException;
+
+import fr.insee.eno.Constants;
+
+public class SchemaValidatorImpl implements SchemaValidator {
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(SchemaValidatorImpl.class);
+
+ private Schema schema;
+ private Validator validator;
+
+ public SchemaValidatorImpl() {
+ SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+ try {
+ schema = sf.newSchema(Constants.ENO_PARAMETERS_XSD);
+ } catch (SAXException e) {
+ e.printStackTrace();
+ }
+ validator = schema.newValidator();
+
+ }
+
+ @Override
+ public ValidationMessage validate(InputStream paramsIS) {
+ LOGGER.info("Validation of parameters file...");
+ boolean valid=false;
+ String message="";
+ try {
+ validateIS(paramsIS);
+ valid=true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ message = e.getMessage();
+ LOGGER.error(message);
+ }
+ finally {
+ LOGGER.info("Validation :"+valid);
+ }
+ message = valid ? "Parameters respect schema." : message;
+ return new ValidationMessage(message, valid);
+ }
+
+ public void validateIS(InputStream paramsIS) throws Exception {
+ validator.reset();
+ Source source = new StreamSource(paramsIS);
+ source = toDOMSource(source);
+ validator.validate(source);
+ }
+
+ public DOMSource toDOMSource(Source source) throws Exception {
+ if (source instanceof DOMSource) {
+ return (DOMSource) source;
+ }
+ Transformer trans = TransformerFactory.newInstance().newTransformer();
+ DOMResult result = new DOMResult();
+ trans.transform(source, result);
+ return new DOMSource(result.getNode());
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/params/validation/ValidationMessage.java b/src/main/java/fr/insee/eno/params/validation/ValidationMessage.java
new file mode 100644
index 000000000..3f49a3a8d
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/validation/ValidationMessage.java
@@ -0,0 +1,28 @@
+package fr.insee.eno.params.validation;
+
+public class ValidationMessage {
+
+ public ValidationMessage(String message, boolean valid) {
+ super();
+ this.message = message;
+ this.valid = valid;
+ }
+ private String message;
+ private boolean valid;
+
+
+
+ public String getMessage() {
+ return message;
+ }
+ public void setMessage(String message) {
+ this.message = message;
+ }
+ public boolean isValid() {
+ return valid;
+ }
+ public void setValid(boolean valid) {
+ this.valid = valid;
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/params/validation/Validator.java b/src/main/java/fr/insee/eno/params/validation/Validator.java
new file mode 100644
index 000000000..417be55c1
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/validation/Validator.java
@@ -0,0 +1,39 @@
+package fr.insee.eno.params.validation;
+
+import fr.insee.eno.parameters.ENOParameters;
+import fr.insee.eno.parameters.InFormat;
+import fr.insee.eno.parameters.OutFormat;
+import fr.insee.eno.parameters.Pipeline;
+
+public interface Validator {
+
+ /**
+ * It validates all ENOParameters and it is based on the following function
+ * @param pipeline
+ * @return a ValidationMessage with a message and the boolean if it is valid.
+ */
+ ValidationMessage validate(ENOParameters parametersType);
+
+ /**
+ * It validates the combination of InFormat/OutFormat.
+ * @param pipeline
+ * @return a ValidationMessage with a message and the boolean if it is valid.
+ */
+ ValidationMessage validateIn2Out(InFormat inFormat, OutFormat outFormat);
+
+ /**
+ * It validates PreProcessing according to the pipeline.
+ * @param pipeline
+ * @return a ValidationMessage with a message and the boolean if it is valid.
+ */
+ ValidationMessage validatePreProcessings(Pipeline pipeline);
+
+ /**
+ * It validates PostProcessing according to the pipeline.
+ * @param pipeline
+ * @return a ValidationMessage with a message and the boolean if it is valid.
+ */
+ ValidationMessage validatePostProcessings(Pipeline pipeline);
+
+
+}
diff --git a/src/main/java/fr/insee/eno/params/validation/ValidatorImpl.java b/src/main/java/fr/insee/eno/params/validation/ValidatorImpl.java
new file mode 100644
index 000000000..ed9ac397b
--- /dev/null
+++ b/src/main/java/fr/insee/eno/params/validation/ValidatorImpl.java
@@ -0,0 +1,144 @@
+package fr.insee.eno.params.validation;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.parameters.ENOParameters;
+import fr.insee.eno.parameters.InFormat;
+import fr.insee.eno.parameters.OutFormat;
+import fr.insee.eno.parameters.Pipeline;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.parameters.PreProcessing;
+
+public class ValidatorImpl implements Validator {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ValidatorImpl.class);
+
+ public static final PostProcessing[] POST_PROCESSINGS_FULL = PostProcessing.class.getEnumConstants();
+ public static final PreProcessing[] PRE_PROCESSINGS_FULL = PreProcessing.class.getEnumConstants();
+
+ @Override
+ public ValidationMessage validate(ENOParameters parametersType) {
+ Pipeline pipeline = parametersType.getPipeline();
+ ValidationMessage validationIn2Out = validateIn2Out(pipeline.getInFormat(), pipeline.getOutFormat());
+ ValidationMessage validationPreProcessings = validatePreProcessings(pipeline);
+ ValidationMessage validationPostProcessings = validatePostProcessings(pipeline);
+
+ boolean isValid = validationIn2Out.isValid()
+ && validationPreProcessings.isValid()
+ && validationPostProcessings.isValid();
+ String message = validationIn2Out.getMessage() +", "+
+ validationPreProcessings.getMessage() +", "+
+ validationPostProcessings.getMessage();
+
+ return new ValidationMessage(message,isValid);
+ }
+
+ @Override
+ public ValidationMessage validateIn2Out(InFormat inFormat, OutFormat outFormat) {
+ boolean isValid = inFormat!=null && outFormat!=null;
+ String message = "";
+ if(isValid) {
+ switch (inFormat) {
+ case DDI:
+ isValid = true;
+ break;
+ case POGUES_XML:
+ isValid = outFormat.equals(OutFormat.DDI) || outFormat.equals(OutFormat.POGUES_XML);
+ break;
+ case FR:
+ isValid = outFormat.equals(OutFormat.FR);
+ default:
+ isValid=false;
+ break;
+ }
+ message += isValid ? "" : "The combination (in:'"+inFormat.value()+"'/out:'"+ outFormat.value() +"')"+" format is not valid";
+ }
+ else {
+ message = "One of In/Out format doesn't exist in Eno. ";
+ }
+
+ message += isValid ? "The combination In/Out format is valid" : "";
+ LOGGER.info(message);
+ return new ValidationMessage(message, isValid);
+ }
+
+ @Override
+ public ValidationMessage validatePreProcessings(Pipeline pipeline) {
+ boolean isValid=true;
+ String message="";
+ InFormat inFormat = pipeline.getInFormat();
+ boolean preProcessingNeeded = pipeline.getPostProcessing().contains(PostProcessing.FR_MODELE_COLTRANE);
+ List preProcessings = pipeline.getPreProcessing();
+ List preProcessingsCopy = new ArrayList<>(preProcessings);
+
+ if(inFormat!=null) {
+ if(isValid) {
+ Collections.sort(preProcessingsCopy);
+ List preProcessingInFormat = Arrays.asList(Arrays.stream(PRE_PROCESSINGS_FULL).filter(p->p.value().contains(inFormat.value()+"-")).toArray(PreProcessing[]::new));
+
+ boolean order = preProcessingsCopy.equals(preProcessings);
+ boolean consistency = preProcessingInFormat.containsAll(preProcessingsCopy);
+ boolean mapping = preProcessingNeeded ? preProcessings.contains(PreProcessing.DDI_MAPPING) || inFormat.equals(InFormat.FR):true;
+
+ isValid = order && consistency && mapping;
+
+ message += order ? "" : "PreProcessings are not in the right order. The right order should be : "+preProcessingsCopy;
+ message += consistency ? "" : "PreProcessings are not valid according to the InFormat ('"+inFormat.value()+"') ";
+ message += mapping ? "" : "The PostProcessing '"+PostProcessing.FR_MODELE_COLTRANE.value()+"', need the PreProcessing '"+PreProcessing.DDI_MAPPING.value()+"' ";
+
+ }
+ else {
+ message+="One of PreProcessings doesn't exist in Eno.";
+ }
+ }
+ else {
+ isValid = false;
+ message+="The inFormat doesn't exist in Eno, validator can't check PreProcessings.";
+ }
+ message += isValid ? "PreProcessing are valid" : "";
+ LOGGER.info(message);
+ return new ValidationMessage(message, isValid);
+ }
+
+ @Override
+ public ValidationMessage validatePostProcessings(Pipeline pipeline) {
+ boolean isValid = true;
+ String message="";
+ OutFormat outFormat = pipeline.getOutFormat();
+ List postProcessings = pipeline.getPostProcessing();
+ List postProcessingsCopy = new ArrayList<>(postProcessings);
+
+ if(outFormat!=null) {
+ if(isValid) {
+
+ Collections.sort(postProcessingsCopy);
+ List postProcessingOutFormat = Arrays.asList(Arrays.stream(POST_PROCESSINGS_FULL).filter(p->p.value().contains(outFormat.value()+"-")).toArray(PostProcessing[]::new));
+
+ boolean order = postProcessingsCopy.equals(postProcessings);
+ boolean consistency = postProcessingOutFormat.containsAll(postProcessingsCopy);
+
+ isValid = order && consistency;
+
+ message += order ? "" : "PostProcessings are not in the right order. The order should be : "+postProcessingsCopy;
+ message += consistency ? "" : "PostProcessings are not valid according to the OutFormat ('"+outFormat.value()+"') ";
+ }
+ else {
+ message+="One of PostProcessings doesn't exist in Eno.";
+ }
+ }
+ else {
+ isValid = false;
+ message+="The outFormat doesn't exist in Eno, validator can't check PostProcessings.";
+ }
+
+ message += isValid ? "PostProcessing are valid" : "";
+ LOGGER.info(message);
+ return new ValidationMessage(message, isValid);
+ }
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/DDIPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/DDIPostprocessor.java
index b69c7f8a7..c2a7151ee 100644
--- a/src/main/java/fr/insee/eno/postprocessing/DDIPostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/DDIPostprocessor.java
@@ -15,6 +15,7 @@
/**
* DDI postprocessor.
*/
+@Deprecated
public class DDIPostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(DDIPostprocessor.class);
@@ -24,7 +25,7 @@ public class DDIPostprocessor implements Postprocessor {
@Override
public File process(File input, byte[] parameters, String survey) throws Exception {
- logger.info("DDIPostprocessor Target : START");
+ logger.info("DDIMarkdown2XhtmlPostprocessor Target : START");
String mw2xhtmlOutput = FilenameUtils.removeExtension(input.getPath()) + Constants.MW_EXTENSION;
// ----- mw2xhtml
logger.debug("Markdown to XHTML : -Input : " + input + " -Output : " + mw2xhtmlOutput + " -Stylesheet : "
@@ -59,7 +60,7 @@ public File process(File input, byte[] parameters, String survey) throws Excepti
isUTIL_DDI_TWEAK_XHTML_FOR_DDI_XSL.close();
osTweakXhtmlForDdi.close();
- logger.debug("DDIPostprocessor : END");
+ logger.debug("DDIMarkdown2XhtmlPostprocessor : END");
return new File(outputTweakXhtmlForDdi);
}
diff --git a/src/main/java/fr/insee/eno/postprocessing/JSExternalizeVariablesPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/JSExternalizeVariablesPostprocessor.java
index ab3322d74..13dd5288b 100644
--- a/src/main/java/fr/insee/eno/postprocessing/JSExternalizeVariablesPostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/JSExternalizeVariablesPostprocessor.java
@@ -14,6 +14,7 @@
/**
* Customization of JS postprocessor.
*/
+@Deprecated
public class JSExternalizeVariablesPostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(JSExternalizeVariablesPostprocessor.class);
@@ -25,7 +26,7 @@ public class JSExternalizeVariablesPostprocessor implements Postprocessor {
public File process(File input, byte[] parameters, String surveyName) throws Exception {
File outputCustomFOFile = new File(
- input.getPath().replace(Constants.SORT_COMPONENTS_JS_EXTENSION, Constants.FINAL_JS_EXTENSION));
+ input.getPath().replace(Constants.SORT_COMPONENTS_JS_EXTENSION, Constants.EXTERNALIZE_VARIABLES_JS_EXTENSION));
InputStream JS_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_EXTERNALIZE_VARIABLES_JS);
diff --git a/src/main/java/fr/insee/eno/postprocessing/JSSortComponentsPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/JSSortComponentsPostprocessor.java
index 89204651e..eb0104cb9 100644
--- a/src/main/java/fr/insee/eno/postprocessing/JSSortComponentsPostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/JSSortComponentsPostprocessor.java
@@ -15,6 +15,7 @@
/**
* Customization of JS postprocessor.
*/
+@Deprecated
public class JSSortComponentsPostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(JSSortComponentsPostprocessor.class);
diff --git a/src/main/java/fr/insee/eno/postprocessing/PDFEditStructurePagesPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/PDFEditStructurePagesPostprocessor.java
index 2ee9ad683..f3504f16e 100644
--- a/src/main/java/fr/insee/eno/postprocessing/PDFEditStructurePagesPostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/PDFEditStructurePagesPostprocessor.java
@@ -12,6 +12,7 @@
import fr.insee.eno.Constants;
import fr.insee.eno.transform.xsl.XslTransformation;
+@Deprecated
public class PDFEditStructurePagesPostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(PDFEditStructurePagesPostprocessor.class);
diff --git a/src/main/java/fr/insee/eno/postprocessing/PDFInsertAccompanyingMailsPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/PDFInsertAccompanyingMailsPostprocessor.java
index fdb5f22af..cf9d730b3 100644
--- a/src/main/java/fr/insee/eno/postprocessing/PDFInsertAccompanyingMailsPostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/PDFInsertAccompanyingMailsPostprocessor.java
@@ -12,6 +12,7 @@
import fr.insee.eno.Constants;
import fr.insee.eno.transform.xsl.XslTransformation;
+@Deprecated
public class PDFInsertAccompanyingMailsPostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(PDFInsertAccompanyingMailsPostprocessor.class);
diff --git a/src/main/java/fr/insee/eno/postprocessing/PDFInsertCoverPagePostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/PDFInsertCoverPagePostprocessor.java
index 1927b6890..aca31bcac 100644
--- a/src/main/java/fr/insee/eno/postprocessing/PDFInsertCoverPagePostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/PDFInsertCoverPagePostprocessor.java
@@ -12,6 +12,7 @@
import fr.insee.eno.Constants;
import fr.insee.eno.transform.xsl.XslTransformation;
+@Deprecated
public class PDFInsertCoverPagePostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(PDFInsertCoverPagePostprocessor.class);
diff --git a/src/main/java/fr/insee/eno/postprocessing/PDFInsertEndQuestionPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/PDFInsertEndQuestionPostprocessor.java
index bcbf5509e..5468c9ff6 100644
--- a/src/main/java/fr/insee/eno/postprocessing/PDFInsertEndQuestionPostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/PDFInsertEndQuestionPostprocessor.java
@@ -12,6 +12,7 @@
import fr.insee.eno.Constants;
import fr.insee.eno.transform.xsl.XslTransformation;
+@Deprecated
public class PDFInsertEndQuestionPostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(PDFInsertEndQuestionPostprocessor.class);
diff --git a/src/main/java/fr/insee/eno/postprocessing/PDFMailingPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/PDFMailingPostprocessor.java
index 55948b036..f9abaa2b5 100644
--- a/src/main/java/fr/insee/eno/postprocessing/PDFMailingPostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/PDFMailingPostprocessor.java
@@ -14,6 +14,7 @@
/**
* Customization of FO postprocessor.
*/
+@Deprecated
public class PDFMailingPostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(PDFMailingPostprocessor.class);
diff --git a/src/main/java/fr/insee/eno/postprocessing/PDFSpecificTreatmentPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/PDFSpecificTreatmentPostprocessor.java
index 9418296f6..6e8902f87 100644
--- a/src/main/java/fr/insee/eno/postprocessing/PDFSpecificTreatmentPostprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/PDFSpecificTreatmentPostprocessor.java
@@ -11,6 +11,7 @@
import fr.insee.eno.Constants;
import fr.insee.eno.transform.xsl.XslTransformation;
+@Deprecated
public class PDFSpecificTreatmentPostprocessor implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(PDFSpecificTreatmentPostprocessor.class);
diff --git a/src/main/java/fr/insee/eno/postprocessing/PDFTableColumnPostprocessorFake.java b/src/main/java/fr/insee/eno/postprocessing/PDFTableColumnPostprocessorFake.java
index b10557433..8d6241693 100644
--- a/src/main/java/fr/insee/eno/postprocessing/PDFTableColumnPostprocessorFake.java
+++ b/src/main/java/fr/insee/eno/postprocessing/PDFTableColumnPostprocessorFake.java
@@ -12,6 +12,7 @@
/**
* PDF postprocessor.
*/
+@Deprecated
public class PDFTableColumnPostprocessorFake implements Postprocessor {
private static final Logger logger = LoggerFactory.getLogger(PDFTableColumnPostprocessorFake.class);
diff --git a/src/main/java/fr/insee/eno/postprocessing/Postprocessor.java b/src/main/java/fr/insee/eno/postprocessing/Postprocessor.java
index b1bc29953..66f0f148f 100644
--- a/src/main/java/fr/insee/eno/postprocessing/Postprocessor.java
+++ b/src/main/java/fr/insee/eno/postprocessing/Postprocessor.java
@@ -10,4 +10,17 @@ public interface Postprocessor {
File process(File input, byte[] parametersFile, String survey) throws Exception;
+ default File process(File input, byte[] parametersFile, byte[] metadata, String survey) throws Exception{
+ return this.process(input,parametersFile,survey);
+ }
+
+ default File process(File input, byte[] parametersFile, byte[] metadata, byte[] specificTreatmentXsl, String survey) throws Exception{
+ return this.process(input,parametersFile,metadata,survey);
+ }
+
+ default File process(File input, byte[] parametersFile, byte[] metadata, byte[] specificTreatmentXsl, byte[] mapping, String survey) throws Exception{
+ return this.process(input,parametersFile,metadata,specificTreatmentXsl,survey);
+ }
+
+ public String toString();
}
diff --git a/src/main/java/fr/insee/eno/postprocessing/ddi/DDIMarkdown2XhtmlPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/ddi/DDIMarkdown2XhtmlPostprocessor.java
new file mode 100644
index 000000000..f6398afa4
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/ddi/DDIMarkdown2XhtmlPostprocessor.java
@@ -0,0 +1,79 @@
+package fr.insee.eno.postprocessing.ddi;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * DDI postprocessor.
+ */
+public class DDIMarkdown2XhtmlPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(DDIMarkdown2XhtmlPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+ logger.info("DDIMarkdown2XhtmlPostprocessor Target : START");
+ String mw2xhtmlOutput = FilenameUtils.removeExtension(input.getPath()) + Constants.MW_EXTENSION;
+ // ----- mw2xhtml
+ logger.debug("Markdown to XHTML : -Input : " + input + " -Output : " + mw2xhtmlOutput + " -Stylesheet : "
+ + Constants.UTIL_DDI_MW2XHTML_XSL + " -Parameters : " + Constants.sUB_TEMP_FOLDER(survey));
+
+ InputStream isDDI_MW2XHTML_XSL = Constants.getInputStreamFromPath(Constants.UTIL_DDI_MW2XHTML_XSL);
+ InputStream isInputFile = FileUtils.openInputStream(input);
+
+ OutputStream osTEMP_NULL_TMP = FileUtils.openOutputStream(new File(mw2xhtmlOutput));
+
+ try {
+ saxonService.transformMw2XHTML(isInputFile, isDDI_MW2XHTML_XSL, osTEMP_NULL_TMP,
+ Constants.sUB_TEMP_FOLDER_FILE(survey));
+ }catch(Exception e) {
+ throw new EnoGenerationException("An error was occured during the Markdown2Xhtml transformation. "+e.getMessage());
+ }
+ isInputFile.close();
+ isDDI_MW2XHTML_XSL.close();
+ osTEMP_NULL_TMP.close();
+
+ // ----- tweak-xhtml-for-ddi
+ // tweak-xhtml-for-ddi-input = mw2xhtml-output
+
+ String outputTweakXhtmlForDdi = FilenameUtils.removeExtension(input.getPath()) + Constants.FINAL_DDI_EXTENSION;
+
+ logger.debug("Tweak-xhtml-for-ddi : -Input : " + mw2xhtmlOutput + " -Output : " + outputTweakXhtmlForDdi
+ + " -Stylesheet : " + Constants.UTIL_DDI_TWEAK_XHTML_FOR_DDI_XSL + " -Parameters : "
+ + (parameters == null ? "Default parameters" : "Provided parameters"));
+
+ InputStream isTweakXhtmlForDdi = FileUtils.openInputStream(new File(mw2xhtmlOutput));
+ InputStream isUTIL_DDI_TWEAK_XHTML_FOR_DDI_XSL = Constants
+ .getInputStreamFromPath(Constants.UTIL_DDI_TWEAK_XHTML_FOR_DDI_XSL);
+ OutputStream osTweakXhtmlForDdi = FileUtils.openOutputStream(new File(outputTweakXhtmlForDdi));
+ try {
+ saxonService.transformTweakXhtmlForDdi(isTweakXhtmlForDdi, isUTIL_DDI_TWEAK_XHTML_FOR_DDI_XSL,
+ osTweakXhtmlForDdi, Constants.sUB_TEMP_FOLDER_FILE(survey));
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the Markdown2Xhtml transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+ isTweakXhtmlForDdi.close();
+ isUTIL_DDI_TWEAK_XHTML_FOR_DDI_XSL.close();
+ osTweakXhtmlForDdi.close();
+
+ logger.debug("DDIMarkdown2XhtmlPostprocessor : END");
+ return new File(outputTweakXhtmlForDdi);
+
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FRBrowsingPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FRBrowsingPostprocessor.java
new file mode 100644
index 000000000..2fee529af
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FRBrowsingPostprocessor.java
@@ -0,0 +1,58 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FRBrowsingPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FRBrowsingPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();;
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.BROWSING_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.UTIL_FR_BROWSING_XSL);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+ try {
+ saxonService.transformBrowsingFr(inputStream, outputStream, FO_XSL);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of Browsing post-processing " + outputForFRFile.getAbsolutePath());
+
+ return outputForFRFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_BROWSING.name();
+ }
+
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FREditPatronPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FREditPatronPostprocessor.java
new file mode 100644
index 000000000..339925386
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FREditPatronPostprocessor.java
@@ -0,0 +1,58 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FREditPatronPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FREditPatronPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+ return this.process(input, parameters, null, survey);
+ }
+
+ @Override
+ public File process(File input, byte[] parameters, byte[] metadata, String survey) throws Exception {
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.EDIT_PATRON_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.UTIL_FR_EDIT_PATRON_XSL);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+ try {
+ saxonService.transformWithMetadata(inputStream, outputStream, FO_XSL, parameters, metadata);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of EditPatron post-processing " + outputForFRFile.getAbsolutePath());
+ return outputForFRFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_EDIT_PATRON.name();
+ }
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FRFixAdherencePostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FRFixAdherencePostprocessor.java
new file mode 100644
index 000000000..31ba427e1
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FRFixAdherencePostprocessor.java
@@ -0,0 +1,58 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FRFixAdherencePostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FRFixAdherencePostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+
+
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.FIX_ADHERENCE_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ InputStream FR_XSL = Constants.getInputStreamFromPath(Constants.UTIL_FR_FIX_ADHERENCE_XSL);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+
+ try {
+ saxonService.transformSimple(inputStream, outputStream, FR_XSL);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FR_XSL.close();
+ logger.info("End of fix adherence treatment post-processing " + outputForFRFile.getAbsolutePath());
+
+ return outputForFRFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_FIX_ADHERENCE.name();
+ }
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FRIdentificationPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FRIdentificationPostprocessor.java
new file mode 100644
index 000000000..e44926c12
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FRIdentificationPostprocessor.java
@@ -0,0 +1,57 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FRIdentificationPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FRIdentificationPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.IDENTIFICATION_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.UTIL_FR_IDENTIFICATION_XSL);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+
+ try {
+ saxonService.transformSimple(inputStream, outputStream, FO_XSL);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of identification post-processing " + outputForFRFile.getAbsolutePath());
+
+ return outputForFRFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_IDENTIFICATION.name();
+ }
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertEndPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertEndPostprocessor.java
new file mode 100644
index 000000000..854d21fcb
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertEndPostprocessor.java
@@ -0,0 +1,63 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FRInsertEndPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FRInsertEndPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+ return this.process(input, parameters, null, survey);
+ }
+
+ @Override
+ public File process(File input, byte[] parameters, byte[] metadata, String survey) throws Exception {
+
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.INSERT_END_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.UTIL_FR_INSERT_END_XSL);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+
+ try {
+ saxonService.transformWithMetadata(inputStream, outputStream, FO_XSL, parameters, metadata);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of insert end post-processing " + outputForFRFile.getAbsolutePath());
+
+ return outputForFRFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_INSERT_END.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertGenericQuestionsPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertGenericQuestionsPostprocessor.java
new file mode 100644
index 000000000..f5d088686
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertGenericQuestionsPostprocessor.java
@@ -0,0 +1,56 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FRInsertGenericQuestionsPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FRInsertGenericQuestionsPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String surveyName) throws Exception {
+
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.INSERT_GENERIC_QUESTIONS_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+
+ InputStream FR_XSL = Constants.getInputStreamFromPath(Constants.UTIL_FR_INSERT_GENERIC_QUESTIONS_XSL);
+ try {
+ saxonService.transformFRToFRSimplePost(inputStream,outputStream, FR_XSL,parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+ inputStream.close();
+ outputStream.close();
+ FR_XSL.close();
+ logger.info("End of Insert-generic-questions post-processing." + outputForFRFile.getAbsolutePath());
+
+ return outputForFRFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_INSERT_GENERIC_QUESTIONS.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertWelcomePostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertWelcomePostprocessor.java
new file mode 100644
index 000000000..cd3a24c57
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FRInsertWelcomePostprocessor.java
@@ -0,0 +1,63 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FRInsertWelcomePostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FRInsertWelcomePostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+ return this.process(input, parameters, null, survey);
+ }
+
+ @Override
+ public File process(File input, byte[] parameters, byte[] metadata, String survey) throws Exception {
+
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.INSERT_WELCOME_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.UTIL_FR_INSERT_WELCOME_XSL);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+
+ try {
+ saxonService.transformWithMetadata(inputStream, outputStream, FO_XSL, parameters, metadata);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of insert welcome post-processing " + outputForFRFile.getAbsolutePath());
+
+ return outputForFRFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_INSERT_WELCOME.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FRModeleColtranePostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FRModeleColtranePostprocessor.java
new file mode 100644
index 000000000..90c7773be
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FRModeleColtranePostprocessor.java
@@ -0,0 +1,79 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FRModeleColtranePostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FRModeleColtranePostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+ return this.process(input, parameters, null, null, null, survey);
+ }
+
+ @Override
+ public File process(File input, byte[] parametersFile, byte[] metadata, byte[] specificTreatmentXsl, byte[] mapping, String survey) throws Exception {
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.MODELE_COLTRANE_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ String sUB_TEMP_FOLDER = Constants.tEMP_DDI_FOLDER(Constants.sUB_TEMP_FOLDER(survey));
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.UTIL_FR_MODELE_COLTRANE_XSL);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+ InputStream mappingStream=null;
+ if(mapping!=null) {
+ mappingStream = new ByteArrayInputStream(mapping);
+ }
+ else {
+ File mappingFile = Constants.tEMP_MAPPING_TMP(sUB_TEMP_FOLDER);
+ if(mappingFile.exists()) {
+ logger.info("Loading mapping.xml file : "+mappingFile.getAbsolutePath());
+ mappingStream = FileUtils.openInputStream(mappingFile);
+ }
+ }
+
+ try {
+ saxonService.transformModelColtraneFr(inputStream, outputStream, FO_XSL, mappingStream);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ mappingStream.close();
+ logger.info("End of ModeleColtrane post-processing " + outputForFRFile.getAbsolutePath());
+
+ return outputForFRFile;
+
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_MODELE_COLTRANE.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/fr/FRSpecificTreatmentPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/fr/FRSpecificTreatmentPostprocessor.java
new file mode 100644
index 000000000..7019c6f82
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/fr/FRSpecificTreatmentPostprocessor.java
@@ -0,0 +1,75 @@
+package fr.insee.eno.postprocessing.fr;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class FRSpecificTreatmentPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(FRSpecificTreatmentPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+ return this.process(input, parameters, null, null, survey);
+ }
+
+ @Override
+ public File process(File input, byte[] parametersFile, byte[] metadata, String survey) throws Exception {
+ return this.process(input, parametersFile, metadata, null, survey);
+ }
+
+ @Override
+ public File process(File input, byte[] parametersFile, byte[] metadata, byte[] specificTreatmentXsl, String survey) throws Exception {
+ File outputForFRFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.SPECIFIC_TREATMENT_FR_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForFRFile.getAbsolutePath());
+
+ InputStream specificTreatmentXslIS = null;
+
+ if(specificTreatmentXsl!=null) {
+ specificTreatmentXslIS = new ByteArrayInputStream(specificTreatmentXsl);
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFRFile);
+ try {
+ saxonService.transformWithFRSpecificTreatment(inputStream, outputStream, specificTreatmentXslIS, parametersFile);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ specificTreatmentXslIS.close();
+
+ }
+ else {
+ logger.info("Not specific treatment in params : simply copying this file" + input.getAbsolutePath());
+ FileUtils.copyFile(input, outputForFRFile);
+ }
+ logger.info("End of specific treatment post-processing " + outputForFRFile.getAbsolutePath());
+
+ return outputForFRFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.FR_SPECIFIC_TREATMENT.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/js/JSExternalizeVariablesPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/js/JSExternalizeVariablesPostprocessor.java
new file mode 100644
index 000000000..805fd95dd
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/js/JSExternalizeVariablesPostprocessor.java
@@ -0,0 +1,58 @@
+package fr.insee.eno.postprocessing.js;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * Customization of JS postprocessor.
+ */
+public class JSExternalizeVariablesPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(JSExternalizeVariablesPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String surveyName) throws Exception {
+
+ File outputForJSFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.EXTERNALIZE_VARIABLES_JS_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForJSFile.getAbsolutePath());
+
+ InputStream JS_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_EXTERNALIZE_VARIABLES_JS);
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForJSFile);
+
+ try {
+ saxonService.transformJSToJSPost(inputStream,outputStream, JS_XSL);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ JS_XSL.close();
+ logger.info("End JS externalize codeLists post-processing");
+
+ return outputForJSFile;
+ }
+
+ public String toString() {
+ return PostProcessing.JS_EXTERNALIZE_VARIABLES.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/js/JSInsertGenericQuestionsPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/js/JSInsertGenericQuestionsPostprocessor.java
new file mode 100644
index 000000000..43c4bc64e
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/js/JSInsertGenericQuestionsPostprocessor.java
@@ -0,0 +1,57 @@
+package fr.insee.eno.postprocessing.js;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+public class JSInsertGenericQuestionsPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(JSInsertGenericQuestionsPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String surveyName) throws Exception {
+
+ File outputForJSFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.INSERT_GENERIC_QUESTIONS_JS_EXTENSION);
+
+ logger.debug("Output folder for basic-form : " + outputForJSFile.getAbsolutePath());
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForJSFile);
+
+ InputStream JS_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_INSERT_GENERIC_QUESTIONS_JS);
+ try {
+ saxonService.transformJSToJSSimplePost(inputStream,outputStream, JS_XSL,parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ JS_XSL.close();
+ logger.info("End of Insert-generic-questions post-processing.");
+
+ return outputForJSFile;
+ }
+
+ @Override
+ public String toString() {
+ return PostProcessing.JS_INSERT_GENERIC_QUESTIONS.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/js/JSSortComponentsPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/js/JSSortComponentsPostprocessor.java
new file mode 100644
index 000000000..0308ac483
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/js/JSSortComponentsPostprocessor.java
@@ -0,0 +1,57 @@
+package fr.insee.eno.postprocessing.js;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * Customization of JS postprocessor.
+ */
+public class JSSortComponentsPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(JSSortComponentsPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String surveyName) throws Exception {
+
+ File outputForJSFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.SORT_COMPONENTS_JS_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForJSFile.getAbsolutePath());
+
+ InputStream JS_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_SORT_COMPONENTS_JS);
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForJSFile);
+ try {
+ saxonService.transformJSToJSPost(inputStream,outputStream, JS_XSL);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ JS_XSL.close();
+ logger.info("End JS sort component post-processing");
+
+ return outputForJSFile;
+ }
+
+ public String toString() {
+ return PostProcessing.JS_SORT_COMPONENTS.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/js/JSVTLParserPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/js/JSVTLParserPostprocessor.java
new file mode 100644
index 000000000..f3ed84b10
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/js/JSVTLParserPostprocessor.java
@@ -0,0 +1,244 @@
+package fr.insee.eno.postprocessing.js;
+
+import java.io.File;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+
+/**
+ * Customization of JS postprocessor.
+ */
+public class JSVTLParserPostprocessor implements Postprocessor {
+
+
+
+ private static final Logger logger = LoggerFactory.getLogger(JSVTLParserPostprocessor.class);
+
+
+ @Override
+ public File process(File input, byte[] parameters, String surveyName) throws Exception {
+
+ File outputCustomFOFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.FINAL_JS_EXTENSION);
+ logger.info("Start JS parsing xpath to vtl post-processing");
+
+ String inputString = FileUtils.readFileToString(input, StandardCharsets.UTF_8);
+ try {
+ FileUtils.writeStringToFile(outputCustomFOFile, parseToVTLInNodes(inputString), StandardCharsets.UTF_8);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+ logger.info("End JS parsing xpath to vtl post-processing");
+
+ return outputCustomFOFile;
+ }
+ public static final String XPATH_CONCAT_FUNCTION = "concat";
+ public static final String XPATH_SUBSTRING_FUNCTION = "substring";
+ public static final String XPATH_CAST_FUNCTION = "cast";
+ public static final String XPATH_DIVISION_FUNCTION = " div ";
+ public static final String XPATH_NOT_EQUAL_TO = "!=";
+
+ public static final String VTL_CONCAT_FUNCTION = "||";
+ public static final String VTL_SUBSTRING_FUNCTION = "substr";
+ public static final String VTL_CAST_FUNCTION = "cast";
+ public static final String VTL_DIVISION_FUNCTION = " / ";
+ public static final String VTL_NOT_EQUAL_TO = " <> ";
+
+ public static final String XML_NODE_LABEL = "label";
+ public static final String XML_NODE_CONDITIONFILTER = "conditionFilter";
+ public static final String XML_NODE_VALUE = "value";
+ public static final String XML_NODE_EXPRESSION = "expression";
+
+ public String parseToVTLInNodes(String input) {
+ String possibleNodes = "("+XML_NODE_LABEL+"|"+XML_NODE_CONDITIONFILTER+"|"+XML_NODE_VALUE+"|"+XML_NODE_EXPRESSION+")";
+ Pattern pattern = Pattern.compile("(<"+possibleNodes+">)((.)*?)("+possibleNodes+">)");
+
+ Matcher matcher = pattern.matcher(input);
+ StringBuffer stringBuffer = new StringBuffer();
+ while(matcher.find()){
+ //matcher.group(0)=all expression
+ //matcher.group(1)=start of xml node ex:
+ //matcher.group(6)=name of xml node ex:label
+ String replacement = matcher.group(1) + parseToVTL(matcher.group(3)) + matcher.group(5);
+ matcher.appendReplacement(stringBuffer,"");
+ stringBuffer.append(replacement);
+ }
+ matcher.appendTail(stringBuffer);
+ return stringBuffer.toString();
+ }
+
+
+
+ /**
+ * This function translates XPATH expression to VTL(sdmx) expression
+ *
+ * Definition of used variables in this function:
+ * - finalString is the output
+ * - context is the current string read before a '(' (if there is the char , (comma), context is reset)
+ * - listContext is the list which contains all context (the last context corresponds to the function wrote before '(' )
+ * - isBetweenRealDoubleQuote : boolean, true if the current char is between the char \" literally (and not " char), so if true, the current char is plain text
+ * - isBetweenRealSimpleQuote : boolean, true if the current char is between ' literally
+ * - lastCastType is a string which defines what is the type fo the cast function (example : cast(ABCD,string) -> string)
+ *
+ * Transformations:
+ * x!=y -> x <> y (x <> y)
+ * x div y -> x / y
+ * substring(A,1,2) -> substr(A,1,2)
+ * concat(A,B,C) -> A || B || C
+ * cast(ABCD,string) = '1' -> cast(ABCD,string) = \"1\"
+ * cast(ABCD,integer) = '1' -> cast(ABCD,integer) = 1
+ *
+ * @param input : the string to parse
+ * @return finalString : the result of parsing
+ */
+ public String parseToVTL(String input) {
+ String finalString="";String context="";
+ List listContext = new ArrayList();
+ boolean isBetweenRealDoubleQuote=false;
+ boolean isBetweenRealSimpleQuote=false;
+ String contentBetweenSimpleQuote="";
+ String lastCastType=""; // number, string or integer TODO:date/duration/etc
+ for(int i=0;i contexts) {
+ return contexts.isEmpty() ?"": contexts.get(contexts.size()-1);
+ }
+
+ public void removeLast(List contexts) {
+ if (!contexts.isEmpty()) {
+ contexts.remove(contexts.size()-1);
+ }
+ }
+
+ /**
+ * Function which replaces the last occurences of a string to another in the input
+ * @param string : the input
+ * @param substring : the target to replace
+ * @param replacement : the replacement
+ * @return the new string
+ */
+ public String replaceLast(String string, String substring, String replacement){
+ int index = string.lastIndexOf(substring);
+ if (index == -1)
+ return string;
+ return string.substring(0, index) + replacement + string.substring(index+substring.length());
+ }
+
+ public boolean isNumeric(String strNum) {
+ if (strNum == null) {
+ return false;
+ }
+ try {
+ double d = Double.parseDouble(strNum);
+ } catch (NumberFormatException nfe) {
+ return false;
+ }
+ return true;
+ }
+
+ public String toString() {
+ return PostProcessing.JS_VTL_PARSER.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/pdf/PDFEditStructurePagesPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFEditStructurePagesPostprocessor.java
new file mode 100644
index 000000000..cb9a62931
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFEditStructurePagesPostprocessor.java
@@ -0,0 +1,67 @@
+package fr.insee.eno.postprocessing.pdf;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A PDF post processing
+ */
+public class PDFEditStructurePagesPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(PDFEditStructurePagesPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+
+
+ File outputForFOFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.EDIT_STRUCTURE_FO_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForFOFile.getAbsolutePath());
+
+ String surveyName = survey;
+ String formName = getFormName(input);
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_EDIT_STRUCTURE_PAGES_FO_4PDF);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFOFile);
+
+ try {
+ saxonService.transformFOToStep4FO(inputStream, outputStream, FO_XSL, surveyName, formName, parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of EditStructurePages post-processing " + outputForFOFile.getAbsolutePath());
+
+ return outputForFOFile;
+ }
+
+ private String getFormName(File input) {
+ return FilenameUtils.getBaseName(input.getParentFile().getParent());
+ }
+
+ public String toString() {
+ return PostProcessing.PDF_EDIT_STRUCTURE_PAGES.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertAccompanyingMailsPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertAccompanyingMailsPostprocessor.java
new file mode 100644
index 000000000..075c6761e
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertAccompanyingMailsPostprocessor.java
@@ -0,0 +1,67 @@
+package fr.insee.eno.postprocessing.pdf;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A PDF post processing
+ */
+public class PDFInsertAccompanyingMailsPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(PDFInsertAccompanyingMailsPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+
+ File outputForFOFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.FINAL_PDF_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForFOFile.getAbsolutePath());
+
+ String surveyName = survey;
+ String formName = getFormName(input);
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_ACCOMPANYING_MAILS_FO_4PDF);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFOFile);
+
+ try {
+ saxonService.transformFOToStep4FO(inputStream, outputStream, FO_XSL, surveyName, formName, parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of InsertAccompanyingMails post-processing " + outputForFOFile.getAbsolutePath());
+
+ return outputForFOFile;
+ }
+
+ private String getFormName(File input) {
+ return FilenameUtils.getBaseName(input.getParentFile().getParent());
+ }
+
+ public String toString() {
+ return PostProcessing.PDF_INSERT_ACCOMPANYING_MAILS.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertCoverPagePostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertCoverPagePostprocessor.java
new file mode 100644
index 000000000..bc459c59c
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertCoverPagePostprocessor.java
@@ -0,0 +1,66 @@
+package fr.insee.eno.postprocessing.pdf;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A PDF post processing
+ */
+public class PDFInsertCoverPagePostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(PDFInsertCoverPagePostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+
+ File outputForFOFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.COVER_PAGE_FO_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForFOFile.getAbsolutePath());
+ String surveyName = survey;
+ String formName = getFormName(input);
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_COVER_PAGE_FO_4PDF);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFOFile);
+
+ try {
+ saxonService.transformFOToStep4FO(inputStream, outputStream, FO_XSL, surveyName, formName, parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of InsertCoverPage post-processing " + outputForFOFile.getAbsolutePath());
+
+ return outputForFOFile;
+ }
+
+ private String getFormName(File input) {
+ return FilenameUtils.getBaseName(input.getParentFile().getParent());
+ }
+
+ public String toString() {
+ return PostProcessing.PDF_INSERT_COVER_PAGE.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertEndQuestionPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertEndQuestionPostprocessor.java
new file mode 100644
index 000000000..4e48d8bea
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFInsertEndQuestionPostprocessor.java
@@ -0,0 +1,67 @@
+package fr.insee.eno.postprocessing.pdf;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A PDF post processing
+ */
+public class PDFInsertEndQuestionPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(PDFInsertEndQuestionPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+
+ File outputForFOFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.END_QUESTION_FO_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForFOFile.getAbsolutePath());
+
+ String surveyName = survey;
+ String formName = getFormName(input);
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_END_QUESTION_FO_4PDF);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFOFile);
+
+ try {
+ saxonService.transformFOToStep4FO(inputStream, outputStream, FO_XSL, surveyName, formName, parameters);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of InsertEndQuestion post-processing " + outputForFOFile.getAbsolutePath());
+
+ return outputForFOFile;
+ }
+
+ private String getFormName(File input) {
+ return FilenameUtils.getBaseName(input.getParentFile().getParent());
+ }
+
+ public String toString() {
+ return PostProcessing.PDF_INSERT_END_QUESTION.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/pdf/PDFMailingPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFMailingPostprocessor.java
new file mode 100644
index 000000000..d2a732731
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFMailingPostprocessor.java
@@ -0,0 +1,59 @@
+package fr.insee.eno.postprocessing.pdf;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * Customization of FO postprocessor.
+ */
+public class PDFMailingPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(PDFMailingPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String surveyName) throws Exception {
+
+ File outputForFOFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.MAILING_FO_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForFOFile.getAbsolutePath());
+
+
+ InputStream FO_XSL = Constants.getInputStreamFromPath(Constants.TRANSFORMATIONS_CUSTOMIZATION_FO_4PDF_2);
+
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFOFile);
+ try {
+ saxonService.transformFOToStep1FO(inputStream, outputStream, FO_XSL);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ inputStream.close();
+ outputStream.close();
+ FO_XSL.close();
+ logger.info("End of Mailing post-processing : ");
+
+ return outputForFOFile;
+ }
+
+ public String toString() {
+ return PostProcessing.PDF_MAILING.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/pdf/PDFSpecificTreatmentPostprocessor.java b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFSpecificTreatmentPostprocessor.java
new file mode 100644
index 000000000..50903ce09
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFSpecificTreatmentPostprocessor.java
@@ -0,0 +1,77 @@
+package fr.insee.eno.postprocessing.pdf;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A PDF post processing
+ */
+public class PDFSpecificTreatmentPostprocessor implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(PDFSpecificTreatmentPostprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+ return this.process(input, parameters, null, null, survey);
+ }
+
+ @Override
+ public File process(File input, byte[] parametersFile, byte[] metadata, String survey) throws Exception {
+ return this.process(input, parametersFile, metadata, null, survey);
+ }
+
+ @Override
+ public File process(File input, byte[] parametersFile, byte[] metadata, byte[] specificTreatmentXsl, String survey) throws Exception {
+
+ File outputForFOFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.SPECIFIC_TREAT_PDF_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForFOFile.getAbsolutePath());
+
+ InputStream specificTreatmentXslIS = null;
+
+ if(specificTreatmentXsl!=null) {
+ specificTreatmentXslIS = new ByteArrayInputStream(specificTreatmentXsl);
+ InputStream inputStream = FileUtils.openInputStream(input);
+ OutputStream outputStream = FileUtils.openOutputStream(outputForFOFile);
+
+ try {
+ saxonService.transformWithPDFSpecificTreatment(inputStream, outputStream, specificTreatmentXslIS, parametersFile);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+ inputStream.close();
+ outputStream.close();
+ specificTreatmentXslIS.close();
+
+ }
+ else {
+ logger.info("Not specific treatment in params : simply copying this file" + input.getAbsolutePath());
+ FileUtils.copyFile(input, outputForFOFile);
+ }
+ logger.info("End of specific treatment post-processing " + outputForFOFile.getAbsolutePath());
+
+ return outputForFOFile;
+ }
+
+ public String toString() {
+ return PostProcessing.PDF_SPECIFIC_TREATMENT.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/postprocessing/pdf/PDFTableColumnPostprocessorFake.java b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFTableColumnPostprocessorFake.java
new file mode 100644
index 000000000..4d0f25d49
--- /dev/null
+++ b/src/main/java/fr/insee/eno/postprocessing/pdf/PDFTableColumnPostprocessorFake.java
@@ -0,0 +1,38 @@
+package fr.insee.eno.postprocessing.pdf;
+
+import java.io.File;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.parameters.PostProcessing;
+import fr.insee.eno.postprocessing.Postprocessor;
+
+/**
+ * PDF postprocessor.
+ */
+public class PDFTableColumnPostprocessorFake implements Postprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(PDFTableColumnPostprocessorFake.class);
+
+ @Override
+ public File process(File input, byte[] parameters, String survey) throws Exception {
+
+ File outputForFOFile = new File(input.getParent(),
+ Constants.BASE_NAME_FORM_FILE +
+ Constants.TABLE_COL_SIZE_PDF_EXTENSION);
+ logger.debug("Output folder for basic-form : " + outputForFOFile.getAbsolutePath());
+
+ FileUtils.copyFile(input, outputForFOFile);
+
+ logger.debug("End of TableColumn post-processing (Fake)");
+ return outputForFOFile;
+
+ }
+
+ public String toString() {
+ return PostProcessing.PDF_TABLE_COLUMN.name();
+ }
+}
diff --git a/src/main/java/fr/insee/eno/preprocessing/DDI32ToDDI33Preprocessor.java b/src/main/java/fr/insee/eno/preprocessing/DDI32ToDDI33Preprocessor.java
new file mode 100644
index 000000000..ab35ef067
--- /dev/null
+++ b/src/main/java/fr/insee/eno/preprocessing/DDI32ToDDI33Preprocessor.java
@@ -0,0 +1,61 @@
+package fr.insee.eno.preprocessing;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PreProcessing;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A DDI specific preprocessor.
+ */
+public class DDI32ToDDI33Preprocessor implements Preprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(DDI32ToDDI33Preprocessor.class);
+
+ // FIXME Inject !
+ private static XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File inputFile, byte[] parametersFile, String survey, String in2out) throws Exception {
+ logger.info("DDI32ToDDI33Preprocessing Target : START");
+
+ String sUB_TEMP_FOLDER = Constants.sUB_TEMP_FOLDER(survey);
+ String output = FilenameUtils.removeExtension(inputFile.getAbsolutePath()) + Constants.DDI32_DDI33_EXTENSION;;
+
+ logger.debug("DDI32ToDDI33 : -Input : " + inputFile + " -Output : " +output
+ + " -Stylesheet : " + Constants.UTIL_DDI32_TO_DDI33_XSL + " -Parameters : " + sUB_TEMP_FOLDER);
+
+ InputStream isDDI32_TO_DDI33_XSL = Constants.getInputStreamFromPath(Constants.UTIL_DDI32_TO_DDI33_XSL);
+ InputStream isInputFile = FileUtils.openInputStream(inputFile);
+ OutputStream osDDI32DDI33 = FileUtils.openOutputStream(new File(output));
+
+ try {
+ saxonService.transform(isInputFile, isDDI32_TO_DDI33_XSL, osDDI32DDI33);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ isInputFile.close();
+ isDDI32_TO_DDI33_XSL.close();
+ osDDI32DDI33.close();
+
+ logger.debug("DDI32ToDDI33Preprocessing : END");
+ return new File(output);
+ }
+
+ public String toString() {
+ return PreProcessing.DDI_32_TO_DDI_33.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/preprocessing/DDICleaningPreprocessor.java b/src/main/java/fr/insee/eno/preprocessing/DDICleaningPreprocessor.java
new file mode 100644
index 000000000..dc10c10f6
--- /dev/null
+++ b/src/main/java/fr/insee/eno/preprocessing/DDICleaningPreprocessor.java
@@ -0,0 +1,63 @@
+package fr.insee.eno.preprocessing;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PreProcessing;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A DDI specific preprocessor.
+ */
+public class DDICleaningPreprocessor implements Preprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(DDICleaningPreprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File inputFile, byte[] parametersFile, String survey, String in2out) throws Exception {
+ logger.info("DDIPreprocessing Target : START");
+
+ String cleaningOutput=null;
+ String cleaningInput = inputFile.getAbsolutePath();
+ cleaningOutput = FilenameUtils.removeExtension(cleaningInput) + Constants.CLEANED_EXTENSION;
+
+ logger.debug("Cleaned output file to be created : " + cleaningOutput);
+ logger.debug("Cleaning : -Input : " + cleaningInput + " -Output : " + cleaningOutput + " -Stylesheet : "
+ + Constants.UTIL_DDI_CLEANING_XSL);
+
+ InputStream isCleaningIn = FileUtils.openInputStream(new File(cleaningInput));
+ OutputStream osCleaning = FileUtils.openOutputStream(new File(cleaningOutput));
+ InputStream isUTIL_DDI_CLEANING_XSL = Constants.getInputStreamFromPath(Constants.UTIL_DDI_CLEANING_XSL);
+
+ try {
+ saxonService.transformCleaning(isCleaningIn, isUTIL_DDI_CLEANING_XSL, osCleaning, in2out);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ isCleaningIn.close();
+ isUTIL_DDI_CLEANING_XSL.close();
+ osCleaning.close();
+
+ logger.debug("DDIPreprocessing Cleaning: END");
+ return new File(cleaningOutput);
+ }
+
+ public String toString() {
+ return PreProcessing.DDI_CLEANING.name();
+ }
+
+
+}
diff --git a/src/main/java/fr/insee/eno/preprocessing/DDIDereferencingPreprocessor.java b/src/main/java/fr/insee/eno/preprocessing/DDIDereferencingPreprocessor.java
new file mode 100644
index 000000000..cd6ed0211
--- /dev/null
+++ b/src/main/java/fr/insee/eno/preprocessing/DDIDereferencingPreprocessor.java
@@ -0,0 +1,82 @@
+package fr.insee.eno.preprocessing;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PreProcessing;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A DDI specific preprocessor.
+ */
+public class DDIDereferencingPreprocessor implements Preprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(DDIDereferencingPreprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File inputFile, byte[] parametersFile, String survey, String in2out) throws Exception {
+ logger.info("DDIPreprocessing Target : START");
+
+ String sUB_TEMP_FOLDER = Constants.sUB_TEMP_FOLDER(survey);
+ // ----- Dereferencing
+ logger.debug("Dereferencing : -Input : " + inputFile + " -Output : " + Constants.tEMP_NULL_TMP(sUB_TEMP_FOLDER)
+ + " -Stylesheet : " + Constants.UTIL_DDI_DEREFERENCING_XSL + " -Parameters : " + sUB_TEMP_FOLDER);
+
+ InputStream isDDI_DEREFERENCING_XSL = Constants.getInputStreamFromPath(Constants.DDI_DEREFERENCING_XSL);
+ InputStream isInputFile = FileUtils.openInputStream(inputFile);
+ OutputStream osTEMP_NULL_TMP = FileUtils.openOutputStream(Constants.tEMP_NULL_TMP(sUB_TEMP_FOLDER));
+
+ try {
+ saxonService.transformDereferencing(isInputFile, isDDI_DEREFERENCING_XSL, osTEMP_NULL_TMP,
+ Constants.sUB_TEMP_FOLDER_FILE(survey));
+ }catch(Exception e) {
+ throw new EnoGenerationException("An error was occured during the " + toString() + " transformation. "+e.getMessage());
+ }
+
+ isInputFile.close();
+ isDDI_DEREFERENCING_XSL.close();
+ osTEMP_NULL_TMP.close();
+ // ----- Cleaning
+ logger.debug("Cleaning target");
+ File f = Constants.sUB_TEMP_FOLDER_FILE(survey);
+ File[] matchCleaningInput = f.listFiles(new FilenameFilter() {
+
+ @Override
+ public boolean accept(File dir, String name) {
+ return !name.startsWith("null");
+ }
+ });
+
+ String cleaningInput = null;
+
+ logger.debug("Searching matching files in : " + sUB_TEMP_FOLDER);
+ for (File file : matchCleaningInput) {
+ if(!file.isDirectory()) {
+ cleaningInput = file.getAbsolutePath();
+ logger.debug("Found : " + cleaningInput);
+ }
+ }
+ if(cleaningInput==null) {
+ throw new EnoGenerationException("DDIDereferencing produced no file.");
+ }
+
+ logger.debug("DDIPreprocessing Dereferencing : END");
+ return new File(cleaningInput);
+ }
+
+ public String toString() {
+ return PreProcessing.DDI_DEREFERENCING.name();
+ }
+
+
+}
diff --git a/src/main/java/fr/insee/eno/preprocessing/DDIMappingPreprocessor.java b/src/main/java/fr/insee/eno/preprocessing/DDIMappingPreprocessor.java
new file mode 100644
index 000000000..1fd534059
--- /dev/null
+++ b/src/main/java/fr/insee/eno/preprocessing/DDIMappingPreprocessor.java
@@ -0,0 +1,62 @@
+package fr.insee.eno.preprocessing;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PreProcessing;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A DDI specific preprocessor.
+ */
+public class DDIMappingPreprocessor implements Preprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(DDIMappingPreprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File inputFile, byte[] parametersFile, String survey, String in2out) throws Exception {
+ logger.info("DDIPreprocessing Target : START");
+ System.out.println(saxonService);
+
+ String sUB_TEMP_FOLDER = Constants.tEMP_DDI_FOLDER(Constants.sUB_TEMP_FOLDER(survey));
+
+ File mappingFile =Constants.tEMP_MAPPING_TMP(sUB_TEMP_FOLDER);
+ // ----- Dereferencing
+ logger.debug("Mapping : -Input : " + inputFile + " -Output : " + mappingFile
+ + " -Stylesheet : " + Constants.UTIL_DDI_DEREFERENCING_XSL + " -Parameters : " + sUB_TEMP_FOLDER);
+
+ InputStream isDDI_MAPPING_XSL = Constants.getInputStreamFromPath(Constants.UTIL_DDI_MAPPING_XSL);
+ InputStream isInputFile = FileUtils.openInputStream(inputFile);
+ OutputStream osTEMP_MAPPING_TMP = FileUtils.openOutputStream(mappingFile);
+
+ try {
+ saxonService.transformMapping(isInputFile, isDDI_MAPPING_XSL, osTEMP_MAPPING_TMP,parametersFile);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ isInputFile.close();
+ isDDI_MAPPING_XSL.close();
+ osTEMP_MAPPING_TMP.close();
+
+ return inputFile;
+
+ }
+
+ public String toString() {
+ return PreProcessing.DDI_MAPPING.name();
+ }
+
+
+}
diff --git a/src/main/java/fr/insee/eno/preprocessing/DDIPreprocessor.java b/src/main/java/fr/insee/eno/preprocessing/DDIPreprocessor.java
index 6abef196e..9f9549610 100644
--- a/src/main/java/fr/insee/eno/preprocessing/DDIPreprocessor.java
+++ b/src/main/java/fr/insee/eno/preprocessing/DDIPreprocessor.java
@@ -16,12 +16,12 @@
/**
* A DDI specific preprocessor.
*/
+@Deprecated
public class DDIPreprocessor implements Preprocessor {
private static final Logger logger = LoggerFactory.getLogger(DDIPreprocessor.class);
- // FIXME Inject !
- private static XslTransformation saxonService = new XslTransformation();
+ private XslTransformation saxonService = new XslTransformation();
@Override
public File process(File inputFile, byte[] parametersFile, String survey, String in2out) throws Exception {
diff --git a/src/main/java/fr/insee/eno/preprocessing/DDITitlingPreprocessor.java b/src/main/java/fr/insee/eno/preprocessing/DDITitlingPreprocessor.java
new file mode 100644
index 000000000..e2b84d29e
--- /dev/null
+++ b/src/main/java/fr/insee/eno/preprocessing/DDITitlingPreprocessor.java
@@ -0,0 +1,61 @@
+package fr.insee.eno.preprocessing;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PreProcessing;
+import fr.insee.eno.transform.xsl.XslTransformation;
+
+/**
+ * A DDI specific preprocessor.
+ */
+public class DDITitlingPreprocessor implements Preprocessor {
+
+ private static final Logger logger = LoggerFactory.getLogger(DDITitlingPreprocessor.class);
+
+ private XslTransformation saxonService = new XslTransformation();
+
+ @Override
+ public File process(File inputFile, byte[] parametersFile, String survey, String in2out) throws Exception {
+ logger.info("DDIPreprocessing Target : START");
+
+ String outputTitling = null;
+ String titlingInput = inputFile.getAbsolutePath();
+
+ outputTitling = titlingInput.replace(Constants.CLEANED_EXTENSION, Constants.FINAL_EXTENSION);
+
+ logger.debug("Titling : -Input : " + titlingInput + " -Output : " + outputTitling + " -Stylesheet : "
+ + Constants.UTIL_DDI_TITLING_XSL + " -Parameters : "
+ + (parametersFile == null ? "Default parameters" : "Provided parameters"));
+
+ InputStream isCleaningTitling = FileUtils.openInputStream(new File(titlingInput));
+ InputStream isUTIL_DDI_TITLING_XSL = Constants.getInputStreamFromPath(Constants.UTIL_DDI_TITLING_XSL);
+ OutputStream osTitling = FileUtils.openOutputStream(new File(outputTitling));
+
+ try {
+ saxonService.transformTitling(isCleaningTitling, isUTIL_DDI_TITLING_XSL, osTitling, parametersFile);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
+ isCleaningTitling.close();
+ isUTIL_DDI_TITLING_XSL.close();
+ osTitling.close();
+ logger.debug("DDIPreprocessing titling: END");
+ return new File(outputTitling);
+ }
+
+ public String toString() {
+ return PreProcessing.DDI_TITLING.name();
+ }
+
+}
diff --git a/src/main/java/fr/insee/eno/preprocessing/PoguesXMLPreprocessor.java b/src/main/java/fr/insee/eno/preprocessing/PoguesXMLPreprocessor.java
index 591261564..80bc7779b 100644
--- a/src/main/java/fr/insee/eno/preprocessing/PoguesXMLPreprocessor.java
+++ b/src/main/java/fr/insee/eno/preprocessing/PoguesXMLPreprocessor.java
@@ -22,8 +22,7 @@ public class PoguesXMLPreprocessor implements Preprocessor {
private static final Logger logger = LoggerFactory.getLogger(PoguesXMLPreprocessor.class);
- // FIXME Inject !
- private static XslTransformation saxonService = new XslTransformation();
+ private XslTransformation saxonService = new XslTransformation();
@Override
public File process(File inputFile, byte[] parametersFile, String surveyName, String in2out) throws Exception {
@@ -68,5 +67,4 @@ public File process(File inputFile, byte[] parametersFile, String surveyName, St
logger.debug("PoguesXMLPreprocessing : END");
return new File(outputPreprocessMergeITE);
}
-
}
diff --git a/src/main/java/fr/insee/eno/preprocessing/PoguesXMLPreprocessorGoToTreatment.java b/src/main/java/fr/insee/eno/preprocessing/PoguesXMLPreprocessorGoToTreatment.java
index 369457f23..2b7a83fe1 100644
--- a/src/main/java/fr/insee/eno/preprocessing/PoguesXMLPreprocessorGoToTreatment.java
+++ b/src/main/java/fr/insee/eno/preprocessing/PoguesXMLPreprocessorGoToTreatment.java
@@ -10,6 +10,8 @@
import org.slf4j.LoggerFactory;
import fr.insee.eno.Constants;
+import fr.insee.eno.exception.EnoGenerationException;
+import fr.insee.eno.parameters.PreProcessing;
import fr.insee.eno.transform.xsl.XslTransformation;
/**
@@ -19,14 +21,13 @@ public class PoguesXMLPreprocessorGoToTreatment implements Preprocessor {
private static final Logger logger = LoggerFactory.getLogger(PoguesXMLPreprocessorGoToTreatment.class);
- // FIXME Inject !
- private static XslTransformation saxonService = new XslTransformation();
+ private XslTransformation saxonService = new XslTransformation();
@Override
public File process(File inputFile, byte[] parametersFile, String surveyName, String in2out) throws Exception {
-
+
logger.info("PoguesXMLPreprocessing Target : START");
-
+
String outputPreprocessGOT2ITE = null;
outputPreprocessGOT2ITE = FilenameUtils.removeExtension(inputFile.getAbsolutePath())
@@ -40,15 +41,28 @@ public File process(File inputFile, byte[] parametersFile, String surveyName, St
InputStream isUTIL_POGUES_XML_GOTO_ITE_XSL = Constants
.getInputStreamFromPath(Constants.UTIL_POGUES_XML_GOTO_ITE_XSL);
OutputStream osGOTO2ITE = FileUtils.openOutputStream(new File(outputPreprocessGOT2ITE));
- saxonService.transform(isInputFile, isUTIL_POGUES_XML_GOTO_ITE_XSL, osGOTO2ITE);
+
+ try {
+ saxonService.transform(isInputFile, isUTIL_POGUES_XML_GOTO_ITE_XSL, osGOTO2ITE);
+ }catch(Exception e) {
+ String errorMessage = "An error was occured during the " + toString() + " transformation. "+e.getMessage();
+ logger.error(errorMessage);
+ throw new EnoGenerationException(errorMessage);
+ }
+
isInputFile.close();
isUTIL_POGUES_XML_GOTO_ITE_XSL.close();
osGOTO2ITE.close();
-
+
logger.debug("PoguesXMLPreprocessing : END");
return new File(outputPreprocessGOT2ITE);
-
+
}
+ public String toString() {
+ return PreProcessing.POGUES_XML_GOTO_2_ITE.name();
+ }
+
+
}
diff --git a/src/main/java/fr/insee/eno/preprocessing/Preprocessor.java b/src/main/java/fr/insee/eno/preprocessing/Preprocessor.java
index ad56e4cd6..e9ff04c9a 100644
--- a/src/main/java/fr/insee/eno/preprocessing/Preprocessor.java
+++ b/src/main/java/fr/insee/eno/preprocessing/Preprocessor.java
@@ -23,4 +23,5 @@ public interface Preprocessor {
*/
public File process(File inputFile, byte[] parameters, String survey, String in2out) throws Exception;
+ public String toString();
}
diff --git a/src/main/java/fr/insee/eno/transform/xsl/XslParameters.java b/src/main/java/fr/insee/eno/transform/xsl/XslParameters.java
index 1ba1839ce..c69a50416 100644
--- a/src/main/java/fr/insee/eno/transform/xsl/XslParameters.java
+++ b/src/main/java/fr/insee/eno/transform/xsl/XslParameters.java
@@ -18,10 +18,17 @@ private XslParameters() {
public static final String IN2OUT_PARAMETERS_NODE = "parameters-node";
public static final String IN2OUT_PROPERTIES_FILE = "properties-file";
public static final String IN2OUT_PROPERTIES_NODE = "properties-node";
+ public static final String IN2OUT_METADATA_FILE = "metadata-file";
+ public static final String IN2OUT_METADATA_NODE = "metadata-node";
public static final String CLEANED_EXTENSION = "-cleaned";
public static final String TITLED_EXTENSION = "-final";
public static final String DDI2PDF_STATIC_PAGES = "static-pages";
public static final String IN2OUT_LABELS_FOLDER = "labels-folder";
public static final String IN2OUT_SURVEY_NAME = "survey-name";
public static final String IN2OUT_FORM_NAME = "form-name";
+ public static final String IN2OUT_MAPPING_FILE = "mapping-file";
+ public static final String IN2OUT_MAPPING_FILE_NODE = "mapping-file-node";
+ public static final String IN2OUT_CAMPAGNE = "campaign";
+ public static final String IN2OUT_MODELE = "model";
+
}
diff --git a/src/main/java/fr/insee/eno/transform/xsl/XslTransformation.java b/src/main/java/fr/insee/eno/transform/xsl/XslTransformation.java
index f9fcade90..013d6d5d2 100644
--- a/src/main/java/fr/insee/eno/transform/xsl/XslTransformation.java
+++ b/src/main/java/fr/insee/eno/transform/xsl/XslTransformation.java
@@ -2,7 +2,6 @@
import java.io.ByteArrayInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
@@ -26,40 +25,33 @@
*/
public class XslTransformation {
- final static Logger logger = LoggerFactory.getLogger(XslTransformation.class);
+ final static Logger LOGGER = LoggerFactory.getLogger(XslTransformation.class);
/**
* Main Saxon transformation method
*
- * @param transformer
- * : The defined transformer with his embedded parameters (defined in
- * the other methods of this class)
- * @param xmlInput
- * : The input xml file where the XSLT will be applied
- * @param xmlOutput
- * : The output xml file after the transformation
- * @throws Exception
- * : Mainly if the input/output files path are incorrect
+ * @param transformer : The defined transformer with his embedded parameters
+ * (defined in the other methods of this class)
+ * @param xmlInput : The input xml file where the XSLT will be applied
+ * @param xmlOutput : The output xml file after the transformation
+ * @throws Exception : Mainly if the input/output files path are incorrect
*/
public void xslTransform(Transformer transformer, InputStream xmlInput, OutputStream xmlOutput) throws Exception {
- logger.debug("Starting xsl transformation -Input : " + xmlInput + " -Output : " + xmlOutput);
+ LOGGER.debug("Starting xsl transformation -Input : " + xmlInput + " -Output : " + xmlOutput);
transformer.transform(new StreamSource(xmlInput), new StreamResult(xmlOutput));
}
/**
* Basic Transformer initialization without parameters
*
- * @param input
- * : the input xml file
- * @param xslSheet
- * : the xsl stylesheet that will be used
- * @param output
- * : the xml output that will be created
- * @throws Exception
- * : if the factory couldn't be found or if the paths are incorrect
+ * @param input : the input xml file
+ * @param xslSheet : the xsl stylesheet that will be used
+ * @param output : the xml output that will be created
+ * @throws Exception : if the factory couldn't be found or if the paths are
+ * incorrect
*/
public void transform(InputStream input, InputStream xslSheet, OutputStream output) throws Exception {
- logger.debug("Using the basic transformer");
+ LOGGER.debug("Using the basic transformer");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
tFactory.setURIResolver(new ClasspathURIResolver());
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
@@ -71,16 +63,12 @@ public void transform(InputStream input, InputStream xslSheet, OutputStream outp
/**
* Basic Transformer initialization with config in2out properties file
*
- * @param input
- * : the input xml file
- * @param xslSheet
- * : the xsl stylesheet that will be used
- * @param output
- * : the xml output that will be created
- * @param in2out
- * : the in2out information for config file
- * @throws Exception
- * : if the factory couldn't be found or if the paths are incorrect
+ * @param input : the input xml file
+ * @param xslSheet : the xsl stylesheet that will be used
+ * @param output : the xml output that will be created
+ * @param in2out : the in2out information for config file
+ * @throws Exception : if the factory couldn't be found or if the paths are
+ * incorrect
*/
public void transformCleaning(InputStream input, InputStream xslSheet, OutputStream output, String in2out)
throws Exception {
@@ -97,7 +85,7 @@ public void transformCleaning(InputStream input, InputStream xslSheet, OutputStr
if (in2out == "ddi2js") {
default_properties_file = Constants.CONFIG_DDI2JS;
}
- logger.debug("Using the basic transformer");
+ LOGGER.debug("Using the basic transformer");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
tFactory.setURIResolver(new ClasspathURIResolver());
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
@@ -110,20 +98,16 @@ public void transformCleaning(InputStream input, InputStream xslSheet, OutputStr
/**
* Incorporation Transformer initialization with its parameters
*
- * @param input
- * : the input xml file
- * @param xslSheet
- * : the xsl stylesheet that will be used
- * @param output
- * : the xml output that will be created
- * @param generatedFileParameter
- * : Incorporation xsl parameter
- * @throws Exception
- * : if the factory couldn't be found or if the paths are incorrect
+ * @param input : the input xml file
+ * @param xslSheet : the xsl stylesheet that will be used
+ * @param output : the xml output that will be created
+ * @param generatedFileParameter : Incorporation xsl parameter
+ * @throws Exception : if the factory couldn't be found or if the paths are
+ * incorrect
*/
public void transformIncorporation(InputStream input, InputStream xslSheet, OutputStream output,
File generatedFileParameter) throws Exception {
- logger.debug("Using the incorporation transformer");
+ LOGGER.debug("Using the incorporation transformer");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
@@ -135,20 +119,16 @@ public void transformIncorporation(InputStream input, InputStream xslSheet, Outp
/**
* Markdown to XHTML with its parameters
*
- * @param input
- * : the input xml file
- * @param xslSheet
- * : the xsl stylesheet that will be used
- * @param output
- * : the xml output that will be created
- * @param outputFolderParameter
- * : Markdown to XHTML xsl parameter
- * @throws Exception
- * : if the factory couldn't be found or if the paths are incorrect
+ * @param input : the input xml file
+ * @param xslSheet : the xsl stylesheet that will be used
+ * @param output : the xml output that will be created
+ * @param outputFolderParameter : Markdown to XHTML xsl parameter
+ * @throws Exception : if the factory couldn't be found or if the paths are
+ * incorrect
*/
public void transformMw2XHTML(InputStream input, InputStream xslSheet, OutputStream output,
File outputFolderParameter) throws Exception {
- logger.debug("Using the Markdown to XHTML transformer");
+ LOGGER.debug("Using the Markdown to XHTML transformer");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
@@ -160,20 +140,16 @@ public void transformMw2XHTML(InputStream input, InputStream xslSheet, OutputStr
/**
* TweakXhtmlForDdi with its parameters
*
- * @param input
- * : the input xml file
- * @param xslSheet
- * : the xsl stylesheet that will be used
- * @param output
- * : the xml output that will be created
- * @param outputFolderParameter
- * : TweakXhtmlForDdi xsl parameter
- * @throws Exception
- * : if the factory couldn't be found or if the paths are incorrect
+ * @param input : the input xml file
+ * @param xslSheet : the xsl stylesheet that will be used
+ * @param output : the xml output that will be created
+ * @param outputFolderParameter : TweakXhtmlForDdi xsl parameter
+ * @throws Exception : if the factory couldn't be found or if the paths are
+ * incorrect
*/
public void transformTweakXhtmlForDdi(InputStream input, InputStream xslSheet, OutputStream output,
File outputFolderParameter) throws Exception {
- logger.debug("Using the TweakXhtmlForDdi transformer");
+ LOGGER.debug("Using the TweakXhtmlForDdi transformer");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
@@ -185,20 +161,16 @@ public void transformTweakXhtmlForDdi(InputStream input, InputStream xslSheet, O
/**
* Dereferencing Transformer initialization with its parameters
*
- * @param input
- * : the input xml file
- * @param xslSheet
- * : the xsl stylesheet that will be used
- * @param output
- * : the xml output that will be created
- * @param outputFolderParameter
- * : Dereferencing xsl parameter
- * @throws Exception
- * : if the factory couldn't be found or if the paths are incorrect
+ * @param input : the input xml file
+ * @param xslSheet : the xsl stylesheet that will be used
+ * @param output : the xml output that will be created
+ * @param outputFolderParameter : Dereferencing xsl parameter
+ * @throws Exception : if the factory couldn't be found or if the paths are
+ * incorrect
*/
public void transformDereferencing(InputStream input, InputStream xslSheet, OutputStream output,
File outputFolderParameter) throws Exception {
- logger.debug("Using the dereferencing transformer");
+ LOGGER.debug("Using the dereferencing transformer");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
@@ -207,29 +179,45 @@ public void transformDereferencing(InputStream input, InputStream xslSheet, Outp
xslTransform(transformer, input, output);
}
+ public void transformMapping(InputStream input, InputStream xslSheet, OutputStream output, byte[] parameters)
+ throws Exception {
+ InputStream parametersIS = null;
+ LOGGER.debug("Using the Mapping transformer");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+
+ Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
+ transformer.setErrorListener(new EnoErrorListener());
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
+ if (parameters != null) {
+ parametersIS = new ByteArrayInputStream(parameters);
+ Source source = new StreamSource(parametersIS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_NODE, source);
+ }
+ xslTransform(transformer, input, output);
+ if (parameters != null) {
+ parametersIS.close();
+ }
+ }
+
/**
* Titling Transformer initialization with its parameters
*
- * @param input
- * : the input xml file
- * @param xslSheet
- * : the xsl stylesheet that will be used
- * @param output
- * : the xml output that will be created
- * @param parametersFile
- * : Titling xsl parameter
- * @throws Exception
- * : if the factory couldn't be found or if the paths are incorrect
+ * @param input : the input xml file
+ * @param xslSheet : the xsl stylesheet that will be used
+ * @param output : the xml output that will be created
+ * @param parametersFile : Titling xsl parameter
+ * @throws Exception : if the factory couldn't be found or if the paths are
+ * incorrect
*/
public void transformTitling(InputStream input, InputStream xslSheet, OutputStream output, byte[] parameters)
throws Exception {
InputStream parametersIS = null;
- logger.debug("Using the titling transformer");
+ LOGGER.debug("Using the titling transformer");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
transformer.setErrorListener(new EnoErrorListener());
- transformer.setParameter(XslParameters.TITLING_PARAMETERS_FILE,
- new URI("classpath:" + Constants.PARAMETERS_XML));
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
if (parameters != null) {
parametersIS = new ByteArrayInputStream(parameters);
Source source = new StreamSource(parametersIS);
@@ -249,15 +237,15 @@ private void transformIn2Out(InputStream inputFile, OutputStream outputFile, Inp
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
transformer.setErrorListener(new EnoErrorListener());
transformer.setParameter(XslParameters.IN2OUT_PROPERTIES_FILE, propertiesFile);
- transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
if (parameters != null) {
- logger.info("Using specifics parameters");
+ LOGGER.info("Using specifics parameters");
parametersIS = new ByteArrayInputStream(parameters);
Source source = new StreamSource(parametersIS);
transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_NODE, source);
}
transformer.setParameter(XslParameters.IN2OUT_LABELS_FOLDER, Constants.LABELS_FOLDER);
- logger.debug(String.format("Transformer parameters are: %s, %s",
+ LOGGER.debug(String.format("Transformer parameters are: %s, %s",
transformer.getParameter(XslParameters.IN2OUT_PROPERTIES_FILE),
transformer.getParameter(XslParameters.IN2OUT_PARAMETERS_FILE),
transformer.getParameter(XslParameters.IN2OUT_LABELS_FOLDER)));
@@ -269,37 +257,37 @@ private void transformIn2Out(InputStream inputFile, OutputStream outputFile, Inp
public void transformDDI2FR(InputStream inputFile, OutputStream outputFile, InputStream xslSheet, byte[] parameters)
throws Exception {
- logger.info("Producing a basic XForms from the DDI spec");
+ LOGGER.info("Producing a basic XForms from the DDI spec");
transformIn2Out(inputFile, outputFile, xslSheet, parameters, Constants.CONFIG_DDI2FR);
}
public void transformDDI2ODT(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
byte[] parameters) throws Exception {
- logger.info("Producing a basic ODT from the DDI spec");
+ LOGGER.info("Producing a basic ODT from the DDI spec");
transformIn2Out(inputFile, outputFile, xslSheet, parameters, Constants.CONFIG_DDI2ODT);
}
public void transformDDI2PDF(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
byte[] parameters) throws Exception {
- logger.info("Producing a basic PDF (Fo) from the DDI spec");
+ LOGGER.info("Producing a basic PDF (Fo) from the DDI spec");
transformIn2Out(inputFile, outputFile, xslSheet, parameters, Constants.CONFIG_DDI2PDF);
}
- public void transformDDI2JS(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
- byte[] parameters) throws Exception {
- logger.info("Producing a JS (xml file) from the DDI spec");
+ public void transformDDI2JS(InputStream inputFile, OutputStream outputFile, InputStream xslSheet, byte[] parameters)
+ throws Exception {
+ LOGGER.info("Producing a JS (xml file) from the DDI spec");
transformIn2Out(inputFile, outputFile, xslSheet, parameters, Constants.CONFIG_DDI2JS);
}
-
+
public void transformPoguesXML2DDI(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
byte[] parameters) throws Exception {
- logger.info("Producing a basic DDI from the PoguesXML spec");
+ LOGGER.info("Producing a basic DDI from the PoguesXML spec");
transformIn2Out(inputFile, outputFile, xslSheet, parameters, Constants.CONFIG_POGUES_XML2DDI);
}
@@ -311,45 +299,45 @@ private void transformBrowsingin2Out(InputStream inputFile, OutputStream outputF
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
transformer.setErrorListener(new EnoErrorListener());
transformer.setParameter(XslParameters.IN2OUT_LABELS_FOLDER, Constants.LABELS_FOLDER);
- logger.debug(String.format("Transformer parameter is: %s",
+ LOGGER.debug(String.format("Transformer parameter is: %s",
transformer.getParameter(XslParameters.IN2OUT_LABELS_FOLDER)));
xslTransform(transformer, inputFile, outputFile);
}
public void transformBrowsingDDI2FR(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
File labelFolder) throws Exception {
- logger.info("Include the navigation elements into the XForms questionnaire");
+ LOGGER.info("Include the navigation elements into the XForms questionnaire");
transformBrowsingin2Out(inputFile, outputFile, xslSheet, labelFolder);
}
public void transformBrowsingDDI2ODT(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
File labelFolder) throws Exception {
- logger.info("Include the navigation elements into the ODT questionnaire");
+ LOGGER.info("Include the navigation elements into the ODT questionnaire");
transformBrowsingin2Out(inputFile, outputFile, xslSheet, labelFolder);
}
-
+
public void transformBrowsingDDI2JS(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
File labelFolder) throws Exception {
- logger.info("Include the navigation elements into the JS questionnaire");
+ LOGGER.info("Include the navigation elements into the JS questionnaire");
transformBrowsingin2Out(inputFile, outputFile, xslSheet, labelFolder);
}
public void transformFOToStep1FO(InputStream inputFile, OutputStream outputFile, InputStream xslSheet)
throws Exception {
- logger.info("Producing a custom FO (PDF) from the FO with conditioning variables");
+ LOGGER.info("Producing a custom FO (PDF) from the FO with conditioning variables");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
tFactory.setURIResolver(new ClasspathURIResolver());
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
transformer.setErrorListener(new EnoErrorListener());
transformer.setParameter(XslParameters.IN2OUT_PROPERTIES_FILE, Constants.CONFIG_DDI2PDF);
- logger.debug(String.format("FO Transformer parameters file is: %s",
+ LOGGER.debug(String.format("FO Transformer parameters file is: %s",
transformer.getParameter(Constants.CONFIG_DDI2PDF)));
xslTransform(transformer, inputFile, outputFile);
}
public void transformFOToStep2FO(InputStream inputFile, OutputStream outputFile, InputStream xslSheet)
throws Exception {
- logger.info("Producing a specific treatment FO from survey's parameters");
+ LOGGER.info("Producing a specific treatment FO from survey's parameters");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
tFactory.setURIResolver(new ClasspathURIResolver());
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
@@ -362,7 +350,7 @@ public void transformFOToStep4FO(InputStream inputFile, OutputStream outputFile,
String surveyName, String formName, byte[] parameters) throws Exception {
InputStream parametersIS = null;
- logger.info("Inserting generic pages in the FO from survey's parameters");
+ LOGGER.info("Inserting generic pages in the FO from survey's parameters");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
tFactory.setURIResolver(new ClasspathURIResolver());
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
@@ -370,7 +358,7 @@ public void transformFOToStep4FO(InputStream inputFile, OutputStream outputFile,
transformer.setParameter(XslParameters.IN2OUT_SURVEY_NAME, surveyName);
transformer.setParameter(XslParameters.IN2OUT_FORM_NAME, formName);
transformer.setParameter(XslParameters.IN2OUT_PROPERTIES_FILE, Constants.CONFIG_DDI2PDF);
- transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
if (parameters != null) {
parametersIS = new ByteArrayInputStream(parameters);
Source source = new StreamSource(parametersIS);
@@ -381,15 +369,169 @@ public void transformFOToStep4FO(InputStream inputFile, OutputStream outputFile,
parametersIS.close();
}
}
+
+ /* POST transformations */
+ // FR
+
+ public void transformBrowsingFr(InputStream inputFile, OutputStream outputFile, InputStream xslSheet)
+ throws Exception {
+ LOGGER.info("Post-processing browsing for FR transformation.");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
+ transformer.setErrorListener(new EnoErrorListener());
+ transformer.setParameter(XslParameters.IN2OUT_LABELS_FOLDER, Constants.LABELS_FOLDER);
+ LOGGER.debug(String.format("Transformer parameter is: %s",
+ transformer.getParameter(XslParameters.IN2OUT_LABELS_FOLDER)));
+ xslTransform(transformer, inputFile, outputFile);
+ }
+
+ public void transformModelColtraneFr(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
+ InputStream mappingFile) throws Exception {
+ LOGGER.info("Post-processing for FR transformation with mapping.xml file.");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
+ transformer.setErrorListener(new EnoErrorListener());
+ transformer.setParameter(XslParameters.IN2OUT_MAPPING_FILE, Constants.MAPPING_DEFAULT);
+ if (mappingFile != null) {
+ Source source = new StreamSource(mappingFile);
+ transformer.setParameter(XslParameters.IN2OUT_MAPPING_FILE_NODE, source);
+ }
+ LOGGER.debug(String.format("Transformer parameter is: %s",
+ transformer.getParameter(XslParameters.IN2OUT_MAPPING_FILE_NODE)));
+ xslTransform(transformer, inputFile, outputFile);
+
+ }
+
+ public void transformWithMetadata(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
+ byte[] parameters, byte[] metadata) throws Exception {
+ InputStream parametersIS = null;
+ InputStream metadataIS = null;
+ LOGGER.info("Post-processing for FR transformation with parameter file and metadata file");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
+ transformer.setParameter(XslParameters.IN2OUT_PROPERTIES_FILE, Constants.CONFIG_DDI2FR);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
+ transformer.setParameter(XslParameters.IN2OUT_METADATA_FILE, Constants.METADATA_DEFAULT);
+ if (metadata != null) {
+ metadataIS = new ByteArrayInputStream(metadata);
+ Source source = new StreamSource(metadataIS);
+ transformer.setParameter(XslParameters.IN2OUT_METADATA_NODE, source);
+ }
+ if (parameters != null) {
+ parametersIS = new ByteArrayInputStream(parameters);
+ Source source = new StreamSource(parametersIS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_NODE, source);
+ }
+ transformer.setErrorListener(new EnoErrorListener());
+ xslTransform(transformer, inputFile, outputFile);
+ }
+
+ public void transformWithFRSpecificTreatment(InputStream inputFile, OutputStream outputFile,
+ InputStream specificTreatmentXsl, byte[] parameters) throws Exception {
+ InputStream parametersIS = null;
+ LOGGER.info("Specific treatment as post-processing for FR transformation with parameter file");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(specificTreatmentXsl));
+ transformer.setParameter(XslParameters.IN2OUT_PROPERTIES_FILE, Constants.CONFIG_DDI2FR);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
+
+ if (parameters != null) {
+ parametersIS = new ByteArrayInputStream(parameters);
+ Source source = new StreamSource(parametersIS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_NODE, source);
+ }
+ transformer.setErrorListener(new EnoErrorListener());
+ xslTransform(transformer, inputFile, outputFile);
+ }
+
+ public void transformWithPDFSpecificTreatment(InputStream inputFile, OutputStream outputFile,
+ InputStream specificTreatmentXsl, byte[] parameters) throws Exception {
+ InputStream parametersIS = null;
+ LOGGER.info("Specific treatment as post-processing for PDF transformation with parameter file");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(specificTreatmentXsl));
+ transformer.setParameter(XslParameters.IN2OUT_PROPERTIES_FILE, Constants.CONFIG_DDI2PDF);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
+
+ if (parameters != null) {
+ parametersIS = new ByteArrayInputStream(parameters);
+ Source source = new StreamSource(parametersIS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_NODE, source);
+ }
+ transformer.setErrorListener(new EnoErrorListener());
+ xslTransform(transformer, inputFile, outputFile);
+ }
+
+ public void transformFRToFRSimplePost(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
+ byte[] parameters) throws Exception {
+ InputStream parametersIS = null;
+ LOGGER.info("Post-processing for FR transformation with parameter file");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
+ transformer.setParameter(XslParameters.IN2OUT_PROPERTIES_FILE, Constants.CONFIG_DDI2FR);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
+ if (parameters != null) {
+ parametersIS = new ByteArrayInputStream(parameters);
+ Source source = new StreamSource(parametersIS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_NODE, source);
+ }
+ transformer.setErrorListener(new EnoErrorListener());
+ xslTransform(transformer, inputFile, outputFile);
+ }
+ public void transformJSToJSSimplePost(InputStream inputFile, OutputStream outputFile, InputStream xslSheet,
+ byte[] parameters) throws Exception {
+ InputStream parametersIS = null;
+ LOGGER.info("Post-processing for JS transformation with parameter file");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
+ transformer.setParameter(XslParameters.IN2OUT_PROPERTIES_FILE, Constants.CONFIG_DDI2JS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_FILE, Constants.PARAMETERS_DEFAULT);
+ if (parameters != null) {
+ parametersIS = new ByteArrayInputStream(parameters);
+ Source source = new StreamSource(parametersIS);
+ transformer.setParameter(XslParameters.IN2OUT_PARAMETERS_NODE, source);
+ }
+ transformer.setErrorListener(new EnoErrorListener());
+ xslTransform(transformer, inputFile, outputFile);
+ }
+
+ public void transformSimple(InputStream inputFile, OutputStream outputFile, InputStream xslSheet) throws Exception {
+ LOGGER.info("Simple post-processing for FR transformation");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
+ transformer.setErrorListener(new EnoErrorListener());
+ xslTransform(transformer, inputFile, outputFile);
+ }
+
+ // JS
+
public void transformJSToJSPost(InputStream inputFile, OutputStream outputFile, InputStream xslSheet)
throws Exception {
- logger.info("Post-processing for JS transformation");
+ LOGGER.info("Post-processing for JS transformation");
TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
tFactory.setURIResolver(new ClasspathURIResolver());
Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
transformer.setErrorListener(new EnoErrorListener());
xslTransform(transformer, inputFile, outputFile);
}
+
+ public void mergeEnoParameters(InputStream newParameters, OutputStream finalParameters, InputStream xslSheet) throws Exception {
+ LOGGER.info("Merging new eno paramters with default parameters.");
+ TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
+ tFactory.setURIResolver(new ClasspathURIResolver());
+ Transformer transformer = tFactory.newTransformer(new StreamSource(xslSheet));
+ transformer.setErrorListener(new EnoErrorListener());
+ xslTransform(transformer, newParameters, finalParameters);
+
+ }
}
diff --git a/src/main/resources/config/ddi2fr.xml b/src/main/resources/config/ddi2fr.xml
index 63157b3e7..f8a60a357 100644
--- a/src/main/resources/config/ddi2fr.xml
+++ b/src/main/resources/config/ddi2fr.xml
@@ -1,25 +1,38 @@
-
+
css
common.css
+ commonEnglish.css
img
+
+ img
+ modifier.png
+ pdf.png
+
¤
¤
-
- 7
-
+ 7
+ ,
https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000000886460
https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000000888573
- https://eur-lex.europa.eu/legal-content/FR/TXT/HTML/?uri=OJ:L:2016:119:FULL&from=FR
+ https://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX%3A32016R0679
+ https://www.sphinxonline.com/SurveyServer/s/ccpesatisf/EnqueteColtrane2019/questionnaire.htm
+
+ false
+ false
+
+
+ false
+
\ No newline at end of file
diff --git a/src/main/resources/config/ddi2js.xml b/src/main/resources/config/ddi2js.xml
index b31193375..3ad0eeda8 100644
--- a/src/main/resources/config/ddi2js.xml
+++ b/src/main/resources/config/ddi2js.xml
@@ -10,4 +10,17 @@
¤
+
+ sdmx
+ default
+ false
+
+ xslt/post-processing/js/end-question
+ false
+ false
+
+
+ xslt/post-processing/js/begin-question
+ false
+
\ No newline at end of file
diff --git a/src/main/resources/config/ddi2pdf.xml b/src/main/resources/config/ddi2pdf.xml
index e72976006..537e73f22 100644
--- a/src/main/resources/config/ddi2pdf.xml
+++ b/src/main/resources/config/ddi2pdf.xml
@@ -17,18 +17,18 @@
default
- xslt/util/pdf/page-first
+ xslt/post-processing/pdf/page-first
- xslt/util/pdf/accompanying-mails
+ xslt/post-processing/pdf/accompanying-mails
- xslt/util/pdf/end-question
+ xslt/post-processing/pdf/end-question
true
true
- xslt/util/pdf/page-model
+ xslt/post-processing/pdf/page-model