strophe.x.js is a plugin to provide Data Forms ( XEP-0004 ).
Creating a form is easy:
new Strophe.x.Form({
  type: "submit",
  title: "myTitle",
  instructions: "Tell something",
  fields: [f1, f2]
});
You can call the constructor for Forms directly with $form:
$form({
  ...
});
You can also use items within the form:
$form({
  type: "result",
  title: "Search result",
  items: [ item1, { fields: [f1,f5]}, item3 ]
});
Here you don't have to define the reported property (it is generated
automatically).
Creating fields is similar
new Strophe.x.Field({
  type: "text-single",
  "var": "myVariableName",
  desc: "a description",
  label: "My Label",
  required: true,
  value: 1234
});
Fields also have a shorthand:
$field({
  ...
});
You can also use options
$field({
  type: "list-multi",
  "var": "myVariableName",
  desc: "a description",
  label: "My Label",
  required: true,
  values: ["a", "c"],
  options: [
    {label:"One", value: "a"},
    {label:"Two", value: "b"},
    {label:"Three", value: "c"}
]});
Every object can be converted to xml by using the toXML, toHML or toJSON function
You can easily create a form by parsing XML:
var Form = Strophe.x.Form.fromXML(xml);
The same can be done with fromHML for HTML as source.
- jQuery