I am back from our latest Forms working group face to face (f2f) meeting in Madrid. I was only able to attend the last two out of three days, but luckily the working group was kind enough to move some of my favorite issues to the days where I was present.
The working group is currently addressing XForms 1.1 last call issues. The next step, once the issues are addressed, is to get to a Candidate Recommendation (CR). We have very few last call issues to address now, so we hope that we will get there really soon.
Among notable issues discussed during the two days I attended:
Should MIP events (
xforms-valid, etc.) be dispatched as part of XForms initialization? Some implementors thought that the spec already mandated that, but the agreement now seems to be that it doesn't. While there is a good case to be made that these events should be dispatched, we believe that we need to better design UI events in general, and this is currently out of scope for XForms 1.1. I am a little disappointed that we can't do this work as part of XForms 1.1, as I think that UI events as currently specified do not cover many useful use cases. On the other hand I am glad that other working group members recognize that there is a real problem that needs to be addressed in the future.
readonlymodel item property impact actions such as
xforms:insert, etc. We found that the working group was divided between two conceptual views: on one hand, you can see
readonlyas a property which only impacts the UI; on the other hand, you can argue for a strong enforcement of this property by actions, and make the XForms model much more encapsulated. I argued quite a bit against enforcing
readonly, but after very long discussions I lost this battle.
Schema validation remains an obscure part of the spec. We discussed some related issues, but concluded that we would need to do more work on this for XForms 1.2 or XForms 2.0. In the meanwhile, we removed some text in the spec which mandated how datadatype validation needed to be performed, pending more feedback from implementors and a better understanding of the validation issues. In particular, at Orbeon we added extension attributes to support strict, lax, and skip instance validation modes, following the lead of XSLT 2.0.
We had some lively discussions about the definitions of dependencies in XForms, and the impact of this on the model recalculation algorithms. As mentioned in another post, we are working on dependencies in Orbeon Forms, mainly static dependency analysis. However, it seems that the model recalculation algorithm, to operate better, needs dynamic analysis. This promises to be interesting. Our current thinking at Orbeon is that this part of the specification is quite a burden on implementors, as you can't simply use a stock XPath implementation. Anyway, the dependency algorithm was not part of the last call issues, but John did propose some much better definitions which address the related last call comments.
If you are a little disappointed that we seem to tackle fairly low-level issues, please remember that in XForms 1.1, we are just working on addressing a limited set of XForms 1.0 issues. There is agreement in the working group that XForms needs many new features and improvements, which we plan to address in XForms 1.2 and XForms 2.0.
Although it is sometimes hard, especially for a small company, to attend these meetings, I always come back with a sense that we have accomplished something. In spite of all the technology we have today, meeting face to face seems to be still the best way to share ideas quickly. In addition, I ended this short trip to Madrid with a full day of visits on Saturday, including the Royal Palace and the Prado museum.
Thanks to Satec for hosting us this time, and providing us with great food!