xslt.transformations.ddi2fo.ddi2fo.xsl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eno-core Show documentation
Show all versions of eno-core Show documentation
Eno is a tool that generates survey questionnaires starting from their formal description in DDI
The newest version!
This stylesheet is used to transform a DDI input into an Xforms form (containing orbeon form runner adherences).
The folder containing label resources in different languages.
The properties file used by the stylesheet.
It's on a transformation level.
A variable is created to build a set of label resources in different languages.
Only the resources in languages already present in the DDI input are charged.
The properties and parameters files are charged as xml trees.
Variables from propertiers and parameters
Variables from propertiers and parameters : copying style xml tree structure with two changes :
- style attributes become attributes of the style-set tag
- overloading properties with parameters when provided by the study
Characters used to surround variables in conditioned text.
Root template :
The transformation starts with the main Sequence.
Linking output function enofo:get-body-line to input function enoddi:get-table-line.
This function has too many parameters to stay in the functions.fods file
Linking output function enofo:get-rowspan to input function enoddi:get-rowspan.
This function has too many parameters to stay in the functions.fods file
This function retrieves the languages to appear in the generated Xforms.
Those languages can be specified in a parameters file on a questionnaire level.
If not, it will get the languages defined in the DDI input.
*
Function for debugging, it outputs the input name of the element related to the driver.
Function for retrieving instructions based on the location they need to be outputted
Function for retrieving instructions based on the location they need to be outputted
Function for retrieving style for QuestionTable (only 'no-border' or '' as values yet)
Function for retrieving an index for footnote instructions (based on their ordering in the questionnaire)
Function that returns if a variable is initializable or not
The main Sequence activates the higher driver 'Form'.
The 'module' Sequence activates the 'Module' driver.
The 'submodule' Sequence activates the 'SubModule' driver.
The 'group' Sequence activates the 'Group' driver.
The d:ThenConstructReference elements activate the xf-group driver.
The d:ElseConstructReference elements activate the xf-group driver.
"Other – give details" activate the Clarification driver for "give details" in QuestionItem
"Other – give details" activate the Clarification driver for "give details" in QuestionGrid
A StatementItem activates the xf-output driver.
Most Instruction elements activates the xf-output driver.
The "FlowControl" ExternalAid of a Question is the Instruction for a GoTo leaving from the Question, so it activates the GoTo.
The Computation Item activates the control driver
Those DateTimeDomain elements activate the DurationDomain driver.
Those DateTimeDomainReference elements activate the DurationDomain driver.
Those DateTimeDomain elements (not duration) activate the DateTimeDomain driver.
Those DateTimeDomainReference elements (not duration) activate the DateTimeDomain driver.
The NumericDomain element activates the NumericDomain driver.
The NumericDomainReference element activates the NumericDomain driver.
Those TextDomain (250 chars max excluded) activate the TextDomain driver.
Those TextDomain elements (250 chars min) activate the TextareaDomain driver.
Those CodeDomain elements activate the CodeDomaindriver.
The NominalDomain element activates the BooleanDomain driver.
Those Code elements activate the xf-item driver.
Those Code elements activate the xf-item driver.
Those Code elements activate the TextCell driver.
Those Label elements activate the TextCell driver. It is placed at the top left of the Grid.
Those Label elements activate the TextCell driver. It is used as a header for the l:Code of the CodeList.
First dimension from 2-dimensions grid active the TextCell driver even if they don't have Label.
Those GridResponseDomain elements activate the Cell driver.
Those NoDataByDefinition elements which are not linked to a text activate the EmptyCell driver.
Those NoDataByDefinition elements which are linked to a text activate the FixedCell driver.
The QuestionItem elements with a single response activate the SingleResponseQuestion driver.
The QuestionItem elements with a StructuredMixedResponseDomain activates the MultipleQuestion driver.
Those d:QuestionGrid aren't fixed, it is possible to add rows, they activate the 'TableLoop' driver.
Those d:QuestionGrid aren't fixed, it is possible to add rows. The d:StructuredMixedGridResponseDomain activate a RowLoop driver to do so.
Those d:QuestionGrid are 'fixed', they activate the Table driver.
The d:QuestionGrid corresponding to MultipleChoiceQuestion
The d:Loop element activates the QuestionLoop driver.
Group of Variable (based on an Instrument or a loop until now)
Variable (collected + calculated + external)
A GenerationInstruction activates the CalculatedVariable driver.
Linking output function enofo:get-form-title to input function enoddi:get-label.
Linking output function enofo:get-application-name to input function enoddi:get-id.
Linking output function enofo:get-form-name to input function enoddi:get-id.
Linking output function enofo:get-name to input function enoddi:get-id.
Linking output function enofo:get-external-variables to input function enoddi:get-external-variables.
Linking output function enofo:get-relevant to input function enoddi:get-hideable-command.
Linking output function enofo:get-readonly to input function enoddi:get-deactivatable-command.
Linking output function enofo:get-calculate to input function enoddi:get-variable-calculation.
Linking output function enofo:get-type to input function enoddi:get-type.
Linking output function enofo:get-format to input function enoddi:get-format.
Linking output function enofo:get-constraint to input function enoddi:get-control.
Linking output function enofo:get-alert-level to input function enoddi:get-message-type.
Linking output function enofo:get-help to input function enoddi:get-help-instruction.
Linking output function enofo:get-value to input function enoddi:get-value.
Linking output function enofo:get-appearance to input function enoddi:get-output-format.
Linking output function enofo:get-css-class to input function enoddi:get-style.
Linking output function enofo:get-length to input function enoddi:get-length.
Linking output function enofo:get-number-of-decimals to input function enoddi:get-number-of-decimals.
Linking output function enofo:get-suffix to input function enoddi:get-suffix.
Linking output function enofo:get-header-columns to input function enoddi:get-levels-first-dimension.
Linking output function enofo:get-header-lines to input function enoddi:get-levels-second-dimension.
Linking output function enofo:get-body-lines to input function enoddi:get-codes-first-dimension.
Linking output function enofo:get-header-line to input function enoddi:get-title-line.
Linking output function enofo:get-body-line to input function enoddi:get-table-line.
Linking output function enofo:get-rowspan to input function enoddi:get-rowspan.
Linking output function enofo:get-colspan to input function enoddi:get-colspan.
Linking output function enofo:get-minimum-lines to input function enoddi:get-minimum-lines.
Linking output function enofo:get-maximum-lines to input function enoddi:get-maximum-lines.
Linking output function enofo:get-constraint-dependencies to input function enoddi:get-computation-items.
Linking output function enofo:get-relevant-dependencies to input function enoddi:get-hideable-then.
Linking output function enofo:get-readonly-dependencies to input function enoddi:get-deactivatable-then.
Linking output function enofo:get-code-depth to input function enoddi:get-level-number.
Linking output function enofo:get-image to input function enoddi:get-image.
Linking output function enofo:get-before-question-title-instructions to input function enoddi:get-previous-filter-description
Linking output function enofo:get-question-name to input function enoddi:get-question-name.
Linking output function enofo:get-business-name to input function enoddi:get-business-name.
Linking output function enofo:get-flowcontrol-label to input function enoddi:get-flowcontrol-label.
Linking output function enofo:get-maximum to input function enoddi:get-maximum.
Linking output function enofo:get-minimum-occurrences to input function enoddi:get-minimum-occurrences
Linking output function enofo:get-minimum-occurrences-variables to input function enoddi:get-minimum-occurrences-variables
Linking output function enofo:get-maximum-occurrences to input function enoddi:get-maximum-occurrences
Linking output function enofo:get-maximum-occurrences-variables to input function enoddi:get-maximum-occurrences-variables
ResponseDomainInMixed with AttachmentLocation correspond to attached Responsedomain that should'nt be seen as a direct child of the ResponseDomainInMixed but as a direct child of the response field which it's attached to ('other:' usecase)
GridResponseDomainInMixed with AttachmentLocation correspond to attached Responsedomain that should'nt be seen as a direct child of the GridResponseDomainInMixed but as a direct child of the response field which it's attached to ('other:' usecase)
For l:Code with attached ResponseDomain, the attached is a direct child of the l:Code. FIXME : Works only for l:Code, if other case are used, need an extension of the implementation.
For l:Code with attached ResponseDomain, the attached is a direct child of the l:Code. FIXME : Works only for l:Code, if other case are used, need an extension of the implementation.
As in r:OutParameter, all the CodeList could be referenced, it's needed to make the r:OutParameter not a direct child of the CodeDomain to avoid conflict for attached ResponseDomain.
In MultipleChoiceQuestion, only the child of GridResponseDomainInMixed are considered as child (GridDimension and GridResponseDomainInMixed are escaped to prevent Table&Cell drivers).
It deactivate explicit driver flow for Instructions attached to a question. Explicit out-getters should be used instead to retrieve instructions.
Variables become children of the Instrument