MForm is a set of webcontrols that can be used to create, modify and view typed
XML data. Typed XML is such an XML document, whose structure is well-known and defined.
The special thing about MForm is that it provides a way to easily generate a fully
functional form from the given data definition. This data definition must represent
the aforementioned typed XML, this can be either XML Schema, WSDL or XML-serializable
type. After the generation process, the form can be freely modified either in .aspx
or in code.
MForm was created to provide a fast, consistent and elegant way for collecting large
data inputs.
Creating web forms is usually a mundane and repetitive task. There needs to be a
label, a text box and a validator for each of the fields. Controls such as a Repeater
and a GridView may limit work expense if the collected data is tabular but data
structures tend to be more complicated. MForm aims at resolving these problems.
MForm is built on top of the ASP.NET 3.5 framework. MForm is created from a tree
of custom web controls, of which each represents a part of XML data definition.
From the technical point of view, MForm uses some concepts from the Ajax control
toolkit library and uses jquery library on the client side.
You can watch the video in order to see how web forms can be created using MForm.
The easiest way to create MForm control is to generate one with the use of Visual
Studio designer. In order to do it, you need to have some representation of the
XML structure, which the MForm control will reflect. As already mentioned, this
data representation can be a XML schema file, a WSDL file/url or a managed library
with XML-serializable types. If you have not heard of XML Schema before, you might
want to read this introduction.
A WSDL on the other hand is a web service definition language.
You will find the tutorial on how to generate your first MForm webcontrol in
here.
The latest MForm sources can be found at
CodePlex.
A detailed introductory article can also be found
at CodeProject.
The generator is capable of converting XML schema or WSDL definitions into a corresponding
MForm controls structure. However, there are some limitations, either because the
MForm controls cannot operate on some typed XML features, or because the generator
cannot convert some schema definitions. These limitations will be investigated when
MForm reaches a stable release.
List of known limitations:
- xsd:any element from XML Schema definition is ignored,
- recursively used element definitions (i.e. element definition which as one of its
descendants has itself) are ignored,
- Two or more elements with the same qualified name but different definition under
one schema particle (xsd:sequence or
xsd:choice or xsd:all) may result in an
unexpected data input.
- xsd:group with maxoccurs
higher than 1 is treated as with maxoccurs equal
1,