getodk / xforms-spec

The XForms-derived specification used in the ODK ecosystem. If you are interested in building a tool that is compliant with the forms rendered by ODK tools, this is the place to start. ✨⚒✨
https://getodk.github.io/xforms-spec/
30 stars 26 forks source link

Fix/repeat ref deviation #252

Closed MartijnR closed 4 years ago

MartijnR commented 4 years ago

removed devious deviation and updated changelog

lognaturel commented 4 years ago

Thank you! 🎉

More precisely speaking the deviation was with XPath rules, right? It also applied just to paths in a context where a single node was requested but I think losing that nuance is fine.

MartijnR commented 4 years ago

More precisely speaking the deviation was with XPath rules, right?

Yes

It also applied just to paths in a context where a single node was requested but I think losing that nuance is fine.

I don't understand. Could you provide an example please?

lognaturel commented 4 years ago

Could you provide an example please?

Sorry. Words are hard. In the example that sparked all of this linked to from https://github.com/XLSForm/pyxform/issues/393, there's an absolute path in a repeat that's intended to get a nodeset. There has never been a deviation from true XPath there in JavaRosa. The deviation was just in the case where a single node was requested. As I understand it, Enketo ended up with deviation in both because since you don't control the XPath engine, you couldn't change the behavior just in the single node case. So I'd say that the deviation ended up seeming a lot more dire to you than it actually was. Does that make sense? Did I miss something?

MartijnR commented 4 years ago

Thanks! Yes, indeed that's totally right. That was an Enketo-only bug caused by the workaround for the single node deviation with was caused by the old bug in JavaRosa. :)

MartijnR commented 4 years ago

Ok, and now I really understand, why you mentioned this. It's about the changelog item!! :)

Sorry. Yes, we can definitely edit that. I'll do that now to make up for my misunderstanding.