first documentation for inhalt.xml

in order to extend or edit the content of this application unpack the jar-file using any zip-archiver and edit the file *inhalt.xml*. Caution: the file **HAS** to be saved with line breaks in unix format, otherwise the application will not start anymore! at last transfer the jar-file (including the new inhalt.xml) to your phone.

hint: temporarily rename the jar-file with a .zip-ending

### simple example

german version shown

<?xml version="1.0" standalone="yes"?>
<Brian>
<Berechnungen> | root may be anything elements without attributes or content appear in lists for navigation |

` <page name="Temp" descr="Celsius/Fahrenheit">` | page defines a form for calculations attributes: name is required, descr is an optional text for a description |

<feld name="°C" init="15" />
<feld name="°F" init="59" rund="1" /> | here 2 fields are defined attributes: name is required, and optional: init="15" - value shown when opening the form edit="false" - to protect the field from user input rund="1" - count of numbers after the comma (rounded) format="hex" - a hexadecimal field (alternatively "bin") the values are always internally converted to decimal |

<formel val="#0*1.8+32" />
<formel val="(#1-32)*(5/9)" /> | to define the formulas of the calculation attribute: val contains the formula (see below for operators) there is a strictly count and order of the formulas, see below |

</page>
</Berechnungen> | (close elements) |

<Texte>
<text name="eins" descr="ein kurzer Text" image="bild.png" /> | a new element for navigation any element that is not empty will be displayed as text (indepent of the element's name being text or not) attributes: name is required, descr is the (optional) text, image is the file name of an optional png-image inside the jar-archive |

<text name="zwei" monospace="true" size="small">
larger texts may contain
line
breaks
that have to be right in here...</text> | another example for text here it is placed as content of the element letting you control the line breaks. moreover there are optional styles to be choosen from: monospace="true" - to select a monospace font size="small" or size="large" - easy, isn't it? |

</Texte>
</Brian> | (closing elements) |

please note: on some Nokia phones the size of jar-Files is limited to 64kB.

### about the formulas:

to use the values entered or shown in one of the fields the character # is to be used, immediateley followed by the the field's number, counting starts witch 0 for the first field, so the second field is #1

the operators of the compiler by Konstatin Knizhnik

name | example | description |

Assignment | x=1 | Assign value to variable. After execution of this statement, it is possible to access variables from other expressions. |

Conditional operator | c?x:y | If value of expression left to question sign is true, than value of conditional expression is value of the expression after question sign, otherwise - value of expression after colon sign.The following conditional expression for example example is used to calculate fibonnachi numbers: fib(x)=x<2?1:fib(x-1)+fib(x-2) |

Greater | x>y | The value of expression is true if value of left operand is greater than value of right operand. In order to kepp the xml well formed write as entity: `>` |

Less | x<y | The value of expression is true if value of left operand is less than value of right operand. In order to kepp the xml well formed write as entity: `<` |

Between | 1<x<5 | The value of expression is true if value of the second operand is within bounds specified by first and third operands. Use entities `<` to keep the xml well formed. |

Sequence | x=1,y=2 | Sequence of expressions. Expression are evaluated in left-to-right order and result of the last expression is used. using sequences of expressions allows to write the simplest programs. |

Addition | x+y | Sum of two operands |

Subtraction | x-y | Difference of two operands |

Multiplication | x*y | Multiplication of two operands |

Division | x/y | Division of first operand on the second operand |

Power | x^y | Raise left operand to the power specified by right operand |

Integer part | [x] | integer part of the number |

Floating part | {x} | Floating part of the number |

Absolute value | |x| | Absolute value |

Parenthesis | (x) | Expression in parenthesis |

Sine | sin(x) | Sine |

Cosine | cos(x) | Cosine |

Tangent | tan(x) | Tangent |

Arc sine | asin(x) | Arc sine |

Arc cosine | acos(x) | Arc cosine |

Arc tangent | atan(x) | Arc tangent |

Exponent | exp(x) | Exponent |

Natural Logarithm | ln(x) | Natural logarithm |

common Logarithm | log(x) | common logarithm (base 10) |

Ceil | ceil(x) | Smallest integer value not less than operand |

Floor | floor(x) | greatest integer value not greater than operand |

Square root | sqr(x) | Square root |

### count and order of the formulas

the number of the formulas depends on the number of the fields (theoretically max. 9):

fields | formulas |

2 | 2 |

3 | 6 |

4 | 12 |

5 | 20 |

### the order is to be kept as follows:

number of fields | formula-Nr | will be used when this field is changed by the user | and calculates the new value of field |

2 | 1 | 1 | 2 |

2 | 2 | 2 | 1 |

3 | 1 | 1 | 2 |

3 | 2 | 1 | 3 |

3 | 3 | 2 | 1 |

3 | 4 | 2 | 3 |

3 | 5 | 3 | 1 |

3 | 6 | 3 | 2 |

and so on in case of more fields...

back to Brian main page

Christian Güssmer 2006