Truncating the size of an xml file with large cascade options to enable download on ODK

What is the problem? Please be detailed.
I created an xls form that requires data collectors to input the State, Local Government Area (or district) and ward where they are working from. In Nigeria, there are 36 states, 774 LGAs and thousands of wards. After including these options using cascade, i'm finding it difficult to download the form on ODK. I also discovered that when I remove the wards and LGAs, I'm able to download the form. Is it because these options are making the file heavy and if it is, is there a way to truncate the size of the file to enable download?

What ODK tool and version are you using? And on what device and operating system version?
ODK Version 1.11.1 on Android

What steps can we take to reproduce the problem?

What you have you tried to fix the problem?
I've tried to remove some components of the options in cascade, which seemed to work but for subsequent surveys, those options would be vital

Anything else we should know or have? If you have a test form or screenshots or logs, attach here.

1 Like

Hi,

I don't think adding cascade options is an issue, as some of my forms are huge and contains a number of provinces, districts, cities and health facilities. There are few different ways of adding cascade lookup table. If it is possible for you to share just the parts you are having the issue with, one of us may try to come up with a solution.

Thanks,
Imran

1 Like

If you are comfortable with using the command line, pyxform, the library that powers XLSForm converters, now has an option to skip "pretty printing" with a command like python pyxform/xls2xform.py my_form.xlsx my_form.xml --no_pretty_print What that means is that instead of the human-friendly

<text id="static_instance-wards-10339">
    <value>Gangare</value>
</text>

you would end up with no spacing as in

<text id="static_instance-wards-10339"><value>Gangare</value></text>

It turns out just omitting the spacing can save over a megabyte with a form including all Nigeria wards.

To get even more space savings, you can use external selects as described here and zip the csv. This will also make the form much faster. After you have converted the form, zip the itemsets.csv file before uploading it.

Nigeria is a really great test subject for ODK performance because it's such a big country! If you notice any slowdowns or other issues with your form, please post about them.

1 Like

Hello Helene,
Thanks for your response. Nigeria is indeed a big country. I have attached a file containing the states, districts, and wards in Nigeria. Looking forward to another insightful response.

Best,
Nnamdi
States_LGAs_Wards_in_Nigeria.xlsx (246.3 KB)

Hello Imran,
Thanks for your feedback. I have attached a copy of the states, LGAs and wards in Nigeria. Maybe this could help in preferring some sort of solution.
Once again, thanks for your valuable feedback.
Best,
Nnamdi
States_LGAs_Wards_in_Nigeria.xlsx (246.3 KB)

1 Like

Hi,

Try to reorganize your choice filter as the attached example. For some reason, separate cascade sheet sometimes doesn't work.

Thanks,
Imran
test_form.xlsx (12.3 KB)

Thanks for this helpful feedback

@A.N.M_AL-IMRAN It would be helpful to know under what conditions you've seen cascading fail so we can see if maybe there's a problem to fix either with the code or the documentation.

@maximilian Were you able to try some of the suggestions? Did they help you get faster form downloads with all the wards?

Hi Hélène,

I just used cascade tab in one of my surveys and later I had to switch to choice filter for some reason, sorry I can't recall what was the issue as its a while ago.

Thanks,
Imran