Fonctionnement de Lunatic-Model

Le principe de cette librairie java est de transformer un questionnaire au format XML (en sortie d'ENO ddi2js) en un questionnaire au format JSON.

Schéma XSD

Il existe deux modèles de questionnaire :

  • Lunatic (LunaticModel.xsd)
  • LunaticFlat (LunaticModelFlat.xsd)

Les modèles sont définis par des schémas XML dans les fichiers XSD. Ces schémas sont situés dans le dossier : src/main/resources/xsd. Ils valident et assurent la bonne structure du fichier XML attendu en entrée des transformations.

Ces schémas sont transformés en classes Java par le compilateur JAXB.

Ces classes permettent ensuite la serialisation en JSON du questionnaire préalablement défini au format XML.

Pilotage par maven

Une phase generate-sources définie dans le fichier pom.xml permet de générer les classes JAXB en s'appuyant sur les schémas XSD.

Transformations

Lunatic-Model fonctionne avec les transformations unitaires suivantes :

  • XMLLunaticToJSONLunaticTranslator
  • XMLLunaticFlatToJSONLunaticFlatTranslator
  • XMLLunaticToXMLLunaticFlatTranslator
  • JSONCleaner

Ces quatre transformations sont nécessaires pour obtenir les deux types de sorties possibles :

  • le questionnaire hiérarchique au format JSON
  • le questionnaire à plat au format JSON

Ces transformations sont de 2 types : XSLT et JAXB.

Transformations XSLT

Les transformations XMLLunaticToXMLLunaticFlatTranslator et JSONCleaner sont des transformations de type XSLT assurées par Saxon. Elles s'appuient respectivement sur les fichiers src/main/resources/xslt/flattener.xsl et src/main/resources/xslt/json-cleaner.xsl

Transformations JAXB

Les transformations XMLLunaticToJSONLunaticTranslator et XMLLunaticFlatToJSONLunaticFlatTranslator sont assurées par JAXB. Il s'agit d'un sérialisation d'un fichier XML au format JSON en utilisant un schéma XSD. Elles s'appuient sur des properties définies dans le dossier src/main/resources/jaxb.

results matching ""

    No results matching ""