Fallunterscheidung
Erzeugt eine „Wenn-Dann-Abfrage“. Das heißt, für jedes Kindelement Fall wird überprüft, ob die Bedingung erfüllt ist. Wenn ja, dann wird der Inhalt des Kindelements Fall ausgeführt und die Verarbeitung hinter der Fallunterscheidung fortgesetzt. Wenn keine Bedingung erfüllt wurde und ein Element Sonst gefunden wurde, wird der Inhalt des Elements Sonst ausgeführt. Durch das frühzeitige Abbrechen werden nachfolgende Fälle nicht weiter untersucht (siehe Beispiel).
Erlaubte Attribute: (keine)
Elternelemente: BeiSeitenAusgabe, BeiSeitenErzeugung, Bis, Datensatz, Element, Fall, FürAlle, Inhalt, Li, Schleife, SeitenSpeichern, Solange, Sonst, Tabelle, Td, Text, Textblock, Tr, U, URL, Zuweisung
<Datensatz element="..."> <Zuweisung variable="zähler" auswahl="3"/> <Fallunterscheidung> <Fall bedingung=" $zähler < 5"> <Zuweisung variable="text" auswahl="'Kleiner als 5'" /> </Fall> <Fall bedingung=" $zähler < 20"> <Zuweisung variable="text" auswahl="'Kleiner als 20'" /> </Fall> <Sonst> <Zuweisung variable="text" auswahl="'Größer als oder gleich 20'" /> </Sonst> </Fallunterscheidung> <ObjektAusgeben spalte="1"> <Textblock> <Absatz><Wert auswahl="$text" /></Absatz> </Textblock> </ObjektAusgeben> </Datensatz>
»Größer« und »kleiner« Vergleiche müssen nach den Regeln von XML kodiert werden. Für »größer« kann das > Zeichen oder > benutzt werden, »kleiner« muss zwingend als < ausgeschrieben sein, da das Zeichen < nicht in einem XML Attribut vorkommen darf.
Eine Fallunterscheidung kann in fast allen Elementen vorkommen. Das Ergebnis der Fallunterscheidung (also vom benutzten Element Fall oder Sonst) wird an das umgebende Element zurückgegeben. So wird beispielsweise aus
<Td> <Absatz> <Fallunterscheidung> <Fall bedingung=" $zeile > 10 "> <Wert>Zeile ist größer als 10</Wert> </Fall> <Sonst> <Wert>Zeile ist kleiner oder gleich 10</Wert> </Sonst> </Fallunterscheidung> </Absatz> </Td>
<Td> <Absatz> <Wert>Zeile ist größer als 10</Wert> </Absatz> </Td>
oder
<Td> <Absatz> <Wert>Zeile ist kleiner oder gleich 10</Wert> </Absatz> </Td>
je nach Inhalt der Variablen.