ODK JavaRosa#
JavaRosa is a Java library for rendering forms that are compliant with ODK XForms spec. It is the heart of many of the ODK tools. ODK JavaRosa is a fork of JavaRosa 1.0 that has been modified to NOT run on J2ME devices. The key differences are:
Regularly updated to ensure spec compliance
KoBo additional instance defn. and filter paths
Remember all bind attributes and any additional attributes on
<input>
,<select>
,<group>
, etc. statementsNumerous enhancements and contributions from SurveyCTO and others
J2ME sub-projects removed
Architecture#
Integration Points#
This section describes how the different parts of ODK use JavaRosa.
Validate#
Two source files in Validate use JavaRosa.
FormValidator.java#
core/model/Constants.java
core/model/FormDef.java
core/model/FormIndex.java
core/model/GroupDef.java
core/model/IFormElement.java
core/model/SelectChoice.java
core/model/condition/EvaluationContext.java
core/model/condition/IFunctionHandler.java
core/model/data/IAnswerData.java
core/model/instance/InstanceInitializationFactory.java
core/model/instance/InvalidReferenceException.java
core/model/instance/TreeElement.java
core/model/instance/TreeReference.java
core/model/utils/IPreloadHandler.java
core/model/utils/QuestionPreloader.java
core/services/PropertyManager.java
core/services/PrototypeManager.java
form/api/FormEntryCaption.java
form/api/FormEntryController.java
form/api/FormEntryModel.java
form/api/FormEntryPrompt.java
model/xform/XFormsModule.java
xform/parse/XFormParseException.java
xform/util/XFormUtils.java
StubPropertyManager.java#
core/services/properties/IPropertyRules.java
core/services/IPropertyManager.java