XForms is a declarative XML-based programming language for writing applications for the web and elsewhere. One of its central aspects is invariants that describe relationships between values, such that if a value changes or is changed, its related values specified in invariants get updated automatically. This is much like how spreadsheets work, though more general. A major advantage of this approach is that much administrative detail is taken out of the hands of the programmer, and done automatically: the programmer specifies the relationships, and the computer does the work.

However, XForms in its current incarnation only allows invariants to be placed between simple content values, even though there are important relationships that could be specified over data structures as a whole. This paper explores the possibilities for extending the mechanism to more general cases.

doi.org/10.4242/BalisageVol26.Pemberton01
Balisage: The Markup Conference 2021
Distributed and Interactive Systems, CWI

Pemberton, S. (2021). Balisage paper: Structural invariants in XForms. In Proceedings of Balisage: The Markup Conference. doi:10.4242/BalisageVol26.Pemberton01