Where is the error in my form

if(${cuis_equip}=1 or ${cuis_equip}=1 or ${voiture}=1 or ${clim}=1 or ${machine}=1 or ${gp_electro}=1 or ${moto}=1 or ${cuis_mod}=1 or ${ordi}=1) ,0,1)

I would like to know where to find the error

Welcome @Moussa,
Unbalanced brackets.
It is recommended to always check your form during development and before deployment with the Online validator, please.

my name is nasser. my form is bringing this error "The survey sheet is either empty or missing important column headers" kindly help me with identifying the problem

Hello Kasadha Nasser,

Please get attached to the file named revised.


In the excel sheet, the survey and choice is typed in CAPITAL LETTERS, which was showing the survey sheet is either empty or missing important column headers, which had been changed.

And after that it was showing some errors as your file had contains "&" which I had highlighted for references.

I had checked the file and its working on my side.

Dinesh Dongol

1 Like

hello Dangol, thanks very much for the support,
i have applied some skips but i dont why they are not working. the is " Cycle detected in form's relevant and calculation logic! The following nodes are likely involved in the loop"

i need some help.

You have a self-reference, see relevant for breathe_or_cry_spontaneously question, line 82. Probably, just to remove this relevant clause.

Design hints:

  1. Instead of duplicating the same relevant for many questions in sequence, you might pack them in a begin_group / end_group block (with or without label) and put this relevant at the begin_group line only.
  2. Should the related notes (titles) not have a relevant too? (e.g. be part of the grouping)
  3. Labels for the groups even might replace your notes (titles).

Don't forget, please, to use the Online validator to check your form during development and before deployment.


If you are using ODK Central (self-hosted or on ODK Cloud), you do not have to do this. Central has form drafts which provide a fast and easy way to iterate on your form design and data analysis before you deploy a new form or an update.

When is a complete syntax validation done in this process, please, similar to the XLSForm Online validator?
I think such syntax check (plus form preview on developer level) can/should be done before submission tests.

It works as you expect, @wroos. A syntax check is done as soon as soon as you upload the form into Central and you won't be able to proceed to further testing until it is validated. There are also warnings and deviations from best practice that Central warns you are about (e.g., if you publish a form without submission testing), but those warnings don't block publication.

1 Like

Could you explain a bit more, please:

  • Does Central internally use the validator function?
  • What differences do exist, concerning errors and warnings?

Central uses pyxform[1] (which XLSForm Online also uses) to validate the initial form upload as well as any updates to the form. If there is an error, it blocks the upload. If there is a warning, it shows the warning and allows you to upload.

XLSForm Online uses the newest unreleased version of pyxform, Central uses the newest released version, and older Central installs have older released versions of pyxform. So, the major differences that exist between what Central shows and what XLSForm Online shows are due to differences in pyxform versions.

[1] Technically, it's not just pyxform that is doing the validation, but also ODK Validate, which is a wrapper around the JavaRosa form processing library that's used in Collect. Enketo has it's own validation function, but we don't use it in pyxform.

1 Like

3 posts were split to a new topic: Form validation in Central, Enketo and XLSForm Online