ui.xml is the xml file defining how a widget will look and its structure, as well as the names of the math expression when they are put into the python code.
In an equation solver widget, it can have the following xml tags:
<title>
Attributes:
text: the text that shows up as the widget's title
<equation>
Inner XML:
A
leftside and a
rightside tag.
<leftside> and
<rightside>
Inner XML:
The left and right (of the equal sign) parts of the equation, written in latex text.
<variables>
Inner XML:
Multiple
variable tags.
<variable>
Attributes:
name: the symbol of the variable. It can be either a single upper or lower case latin letter, like
b, or a letter with a subscript of any combination of numbers and letters, like
C_{g} and
v_{1}.
tags: the special tag of this variable. Can be
constant for a scientific constant number,
angle for angular measurement, or
vector for quantities that can be either a scalar or a vector of multiple values like velocity or acceleration.
value: the value that this symbol represents if it is a constant (i.e. with a
tags="constant" attribute).
desc: a description of what this variable represents in the equation.
dimension: the unit dimensions of the quantity this variable represents, in elemental form of up to seven capital letter - signed nonzero integer pairs. For example, a variable representing acceleration will have
dimension="L1 T-2", meaning it is consisting of one length(L) unit divided by 2 time(T) units. See
relevant wikipedia section
* The angle and vector values for the tags attribute and the dimension attribute currently does not serves any purpose but it is still good to document the nature of variables in equations.