Element <while>¶
Zweck: Wiederholt Kindelemente unter einem Iterationslimit, solange eine Bedingung wahr ist.
Warum: Verwende dieses Element für eine begrenzte Schleife pro Datensatz, wenn sich die wiederholte Ausführung nicht direkt ausdrücken lässt.
Beispiel¶
1 | |
Entscheidungshilfe¶
Fachlicher Nutzen: Drückt begrenzte wiederholte Kindausführung aus, wenn die Stoppbedingung datenabhängig ist.
-
Verwenden, wenn
- Wenn ein zeilenbezogener Workflow bis zu einer Bedingung oder Grenze wiederholt werden muss.
-
Anderen Ansatz wählen, wenn
- Wenn feste Anzahl, Sammlung oder direkter Ausdruck die Wiederholung darstellen können.
-
Voraussetzungen
- Gib eine terminierende Bedingung und eine sichere maximale Iterationszahl an.
-
Alternativen
- Verwende generate für feste oder quellabgeleitete Anzahlen. (Siehe:
<generate>) - Verwende list für begrenzte Sammlungen ohne Schleife. (Siehe:
<list>)
- Verwende generate für feste oder quellabgeleitete Anzahlen. (Siehe:
Vollständige Beispiele¶
Eine datensatzlokale Operation mit expliziter Abbruchbedingung wiederholen
Verwende while nur für begrenzte Iterationslogik, die nicht als direkte Feldabhängigkeit ausdrückbar ist; echo dient dabei der Diagnose und nicht als Exporter.
| bounded-loop/datamimic.xml | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
Regeln und ungültige Kombinationen¶
Keine zusätzlichen elementspezifischen Regeln. Pflichtattribute, Typen und unterstützte Werte stehen unten.
Erlaubte Elternelemente / Erlaubte Kindelemente¶
Erlaubte Elternelemente: else, else-if, generate, if, iterate, nestedKey, while
Erlaubte Kindelemente:
Jedes registrierte DSL-Element.
Attribute¶
Alle 2 Attribute anzeigen
condition
Condition to evaluate before each loop iteration.
erforderlich; string.
maxIterations
Maximum number of iterations before raising an error (default 10000).
optional; integer; Standardwert: null.