XForms is an XML markup for a new generation of forms and form-like applications on the Web. XForms is not a free-standing document type, but is integrated into other markup languages, such as [XHTML], [ODF] or [SVG]. An XForms-based application gathers and processes data using an architecture that separates presentation, purpose and content. The underlying data of a form is organized into instances. XForms allows processing of data to occur using three mechanisms: a declarative model composed of formulae for data calculations and constraints, data type and other property declarations, and data submission parameters a view layer composed of intent-based user interface controls an imperative controller for orchestrating data manipulations, interactions between the model and view layers, and data submissions. Thus, XForms accommodates form component reuse, fosters strong data type validation, eliminates unnecessary round-trips to the server, offers device independence and accessibility, and reduces the need for scripting. XForms 2.0 adds support for defining custom functions, variables, a pluggable expression language with extra functions (XPath 2.0), model-based switch and repeat, Attribute Value Templates, consuming and submitting JSON and CSV instance data, amongst other things.