From a7061eee56c95552d3b9f370daf4b8760a165d8d Mon Sep 17 00:00:00 2001 From: Quentin Ruhier Date: Tue, 24 Feb 2026 17:12:40 +0100 Subject: [PATCH 1/7] fix: add variableReference in variable for ucq --- src/main/resources/xsd/Questionnaire.xsd | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/xsd/Questionnaire.xsd b/src/main/resources/xsd/Questionnaire.xsd index c45efb9..443d3a6 100644 --- a/src/main/resources/xsd/Questionnaire.xsd +++ b/src/main/resources/xsd/Questionnaire.xsd @@ -360,6 +360,7 @@ + Variable representation type to characterize the variable (numeric, From 412d920a4066cb6bc77475abb8ae8c8d53ffe2e9 Mon Sep 17 00:00:00 2001 From: Quentin Ruhier Date: Tue, 24 Feb 2026 17:25:36 +0100 Subject: [PATCH 2/7] fix: forgotten / --- src/main/resources/xsd/Questionnaire.xsd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/xsd/Questionnaire.xsd b/src/main/resources/xsd/Questionnaire.xsd index 443d3a6..b2b706d 100644 --- a/src/main/resources/xsd/Questionnaire.xsd +++ b/src/main/resources/xsd/Questionnaire.xsd @@ -360,7 +360,7 @@ - + Variable representation type to characterize the variable (numeric, @@ -601,7 +601,7 @@ - + VariableReference indicates the collected variable whose values From ae3587e8b2d21509ff8c15e025b80918584d781e Mon Sep 17 00:00:00 2001 From: RemiVerriez Date: Wed, 25 Feb 2026 08:27:22 +0100 Subject: [PATCH 3/7] fix: missing slash --- src/main/resources/xsd/Questionnaire.xsd | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/resources/xsd/Questionnaire.xsd b/src/main/resources/xsd/Questionnaire.xsd index b2b706d..4a6dc5c 100644 --- a/src/main/resources/xsd/Questionnaire.xsd +++ b/src/main/resources/xsd/Questionnaire.xsd @@ -224,7 +224,7 @@ References of variables used by pairwise - questions to define the indivisuals. + questions to define the individuals. @@ -360,7 +360,16 @@ - + + + + VariableReference indicates the collected variable whose values + dynamically define the response options when the question + choiceType is set to VARIABLE. + It must not be used when choiceType is CODE_LIST. + + + Variable representation type to characterize the variable (numeric, @@ -601,7 +610,7 @@ - + VariableReference indicates the collected variable whose values From 68c69137b0d680afe0c775143e9a273a843562d8 Mon Sep 17 00:00:00 2001 From: RemiVerriez Date: Wed, 25 Feb 2026 08:44:18 +0100 Subject: [PATCH 4/7] test: add tests for variable ref in variabletype --- .../pogues/test/JSONDeserializerTest.java | 30 ++++++++++++++++ .../insee/pogues/test/JSONSerializerTest.java | 36 +++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/src/test/java/fr/insee/pogues/test/JSONDeserializerTest.java b/src/test/java/fr/insee/pogues/test/JSONDeserializerTest.java index 8c43e8f..a57275a 100644 --- a/src/test/java/fr/insee/pogues/test/JSONDeserializerTest.java +++ b/src/test/java/fr/insee/pogues/test/JSONDeserializerTest.java @@ -544,4 +544,34 @@ void testVariableResponsesFullConfiguration() throws JAXBException { question.getResponse().getFirst().getVariableReference() ); } + + @Test + void testDeserializeVariableReferenceInExternalVariable() throws JAXBException { + + String json = """ + { + "Variables": { + "Variable": [ + { + "id": "ext1", + "type": "ExternalVariableType", + "VariableReference": "id-variable-ref", + "Name": "NUMERO_MENAGE", + "Label": "Numéro du ménage" + } + ] + } + } + """; + + JSONDeserializer deserializer = new JSONDeserializer(); + Questionnaire questionnaire = deserializer.deserializeString(json); + + ExternalVariableType variable = + (ExternalVariableType) questionnaire.getVariables() + .getVariable().getFirst(); + + assertNotNull(variable); + assertEquals("id-variable-ref", variable.getVariableReference()); + } } diff --git a/src/test/java/fr/insee/pogues/test/JSONSerializerTest.java b/src/test/java/fr/insee/pogues/test/JSONSerializerTest.java index e9266b8..e49ea9c 100644 --- a/src/test/java/fr/insee/pogues/test/JSONSerializerTest.java +++ b/src/test/java/fr/insee/pogues/test/JSONSerializerTest.java @@ -714,4 +714,40 @@ void testSerializeVariableResponsesFullConfiguration() throws Exception { JSONAssert.assertEquals(expectedJson, json, JSONCompareMode.STRICT); } + + @Test + void testSerializeVariableReferenceInExternalVariable() throws Exception { + + ExternalVariableType variable = new ExternalVariableType(); + variable.setId("ext1"); + variable.setName("NUMERO_MENAGE"); + variable.setLabel("Numéro du ménage"); + variable.setVariableReference("id-variable-ref"); + + Questionnaire questionnaire = new Questionnaire(); + questionnaire.setVariables(new Questionnaire.Variables()); + + questionnaire.getVariables().getVariable().add(variable); + + JSONSerializer serializer = new JSONSerializer(true); + String json = serializer.serialize(questionnaire); + + String expectedJson = """ + { + "Variables": { + "Variable": [ + { + "id": "ext1", + "type": "ExternalVariableType", + "VariableReference": "id-variable-ref", + "Name": "NUMERO_MENAGE", + "Label": "Numéro du ménage" + } + ] + } + } + """; + + JSONAssert.assertEquals(expectedJson, json, JSONCompareMode.STRICT); + } } From 4eafe8e489e2c46cabaf170324d761ca2f1bac9f Mon Sep 17 00:00:00 2001 From: RemiVerriez Date: Wed, 25 Feb 2026 08:45:39 +0100 Subject: [PATCH 5/7] chore: bump version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eadf166..196dd2b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ fr.insee.pogues pogues-model - 1.15.1 + 1.16.0 jar Pogues Model From 70f0813f10e7a4f21158d0531c6063a247679bae Mon Sep 17 00:00:00 2001 From: nsenave Date: Mon, 2 Mar 2026 10:05:21 +0100 Subject: [PATCH 6/7] docs: variabler reference rephrasing --- src/main/resources/xsd/Questionnaire.xsd | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/resources/xsd/Questionnaire.xsd b/src/main/resources/xsd/Questionnaire.xsd index 4a6dc5c..1ffd9ab 100644 --- a/src/main/resources/xsd/Questionnaire.xsd +++ b/src/main/resources/xsd/Questionnaire.xsd @@ -363,10 +363,11 @@ - VariableReference indicates the collected variable whose values - dynamically define the response options when the question - choiceType is set to VARIABLE. - It must not be used when choiceType is CODE_LIST. + Property defined on variables associated with a choice question, whose choices are + dynamically defined by the responses of another question. + The value of the 'VariableRerference' property is the identifier of the variable defining + these dynamic choices. + Therefore, it must only be used when the 'choiceType' in the associated question is 'VARIABLE'. From 11e91a8052b4bb9ceddfc74a21d7b4ce64bc0ddf Mon Sep 17 00:00:00 2001 From: nsenave Date: Mon, 2 Mar 2026 10:07:07 +0100 Subject: [PATCH 7/7] chore: fix version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 196dd2b..b57ab87 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ fr.insee.pogues pogues-model - 1.16.0 + 1.15.2 jar Pogues Model