Form model library is a form definition API and a form binding API.
Form model represents the essential part of the GUI or any other source. For example, HTML page can contain many elements, but only some of them make sence for an application. Form model is a description of this essential elements. Then the source HTML page is binded with this description. The result of binding is the binded elements. An application can use this binded elements and do not care about how these elements were obtained from the source HTML page.
Form model library mediates between the source and the application and encapsulates the complexity of the source.
Form model library provides a form binding API, but does not bind the source with the form description itself. The binding extension is needed to bind specific source with the form description.
Namespace: http://d-shap.ru/schema/form-model/1.0
The top-level element. Defines the form.
Attributes:
group
- the form's group, optionalid
- the form's ID, mandatory
Attributes group
and id
identify the form and should be unique.
Child elements:
element
single-element
form-reference
Element is a form part, that make sence for the application.
Attributes:
id
- the element's ID, optionallookup
- the element's lookup string, used by the binding extension, mandatorytype
- the element's type, optional
Valid values for the type
attribute depend on the parent element.
Possible values are:
required
- there should be exactly one element.required+
- there should be at least one element.optional
- there could be one element or no element at all.optional+
- there could be more than one element or no element at all.prohibited
- there should not be any element.
Child elements:
attribute
element
single-element
form-reference
The element's attribute.
Attributes:
id
- the attribute's ID, optionallookup
- the attribute's lookup string, used by the binding extension, mandatorytype
- the attribute's type, optional
Valid values for the type
attribute depend on the parent element.
Possible values are:
required
- there should be exactly one element.optional
- there could be one element or no element at all.prohibited
- there should not be any element.
Single element is a container for other elements.
Only one child element should present (but child element could be optional+
).
Attributes:
id
- the single element's ID, optionaltype
- the single element's type, optional
Valid values for the type
attribute depend on the parent element.
Possible values are:
required
- there should be exactly one element.optional
- there could be one element or no element at all.prohibited
- there should not be any element.
Child elements:
element
single-element
The reference to another form definition.
The elements of the referenced form are included in the current form as child elements of the form-reference
element.
Attributes:
group
- the form's group, optionalid
- the form's ID, mandatory
Form model library:
- <groupId>: ru.d-shap.fm
- <artifactId>: form-model
- <version>: 1.0
If you find my code useful, you can bye me a coffee