Element <param>¶
Zweck: Deklariert den Vertrag für einen Fragmentparameter.
Warum: Verwende dieses Element in einem eingebundenen Fragment, um einen erforderlichen oder vorbelegten Eingang zu deklarieren und zu validieren.
Beispiel¶
1 | |
Entscheidungshilfe¶
Fachlicher Nutzen: Macht erforderliche Eingaben und Defaults eines wiederverwendbaren Fragments für Menschen und Tools sichtbar.
-
Verwenden, wenn
- Wenn ein Fragment einen Caller-Wert benötigt oder einen dokumentierten Default anbietet.
-
Anderen Ansatz wählen, wenn
- Beim Liefern des Caller-Werts oder Definieren einer unabhängigen Setup-Property.
-
Voraussetzungen
- Platziere param im eingebundenen Fragment und gib ihm einen stabilen Namen.
-
Alternativen
- Verwende property am Include, um den deklarierten Parameter zu liefern. (Siehe:
<property>)
- Verwende property am Include, um den deklarierten Parameter zu liefern. (Siehe:
Vollständige Beispiele¶
Ein typisiertes Descriptor-Fragment mit lokalen Parametern aufrufen
Verwende einen param-Vertrag und include-lokale Properties, wenn mehrere fachliche Produkte dieselbe Modellform mit unterschiedlichen begrenzten Werten nutzen.
| parameterized-fragment/fragments/payment.xml | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
| parameterized-fragment/datamimic.xml | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |
Regeln und ungültige Kombinationen¶
type='enum' erfordert eine nicht leere values-Liste.
Attribute: type, values
Warum: Der Fragmentvertrag benötigt das erlaubte Vokabular, um Include-Properties zu validieren.
| Gültige Kombination | |
|---|---|
1 | |
| Ungültige Kombination | |
|---|---|
1 | |
Ein param-default darf keinen Ausdruck enthalten.
Attribute: default
Warum: Defaults werden zur Parse-Zeit validiert; dynamische Werte gehören in den script-Modus der aufrufenden property.
| Gültige Kombination | |
|---|---|
1 | |
| Ungültige Kombination | |
|---|---|
1 | |
Ein literaler default muss dem deklarierten param-type entsprechen.
Attribute: default, type, values
Warum: Der Include-Vertrag muss einen ungültigen Fallback ablehnen, bevor das Fragment ausgeführt wird.
| Gültige Kombination | |
|---|---|
1 | |
| Ungültige Kombination | |
|---|---|
1 | |
I618 — Parser Include Param Missing
Fragment contract violation for
{contract_table}
{missing_summary}
Warum: The included fragment declares required params that were not supplied by the caller.
Lösung: Supply the missing
I619 — Parser Include Param Invalid Value
Invalid value for param '{param_name}' in
Warum: The include caller supplied a literal value that does not satisfy the fragment param contract.
Lösung: Update the
I620 — Parser Param In Top Level Descriptor
declarations have no effect in top-level descriptors
Warum: Fragment param declarations are only consumed when a descriptor is used as an included XML fragment.
Lösung: Move the declarations into a fragment descriptor or remove them from the top-level descriptor.
Erlaubte Elternelemente / Erlaubte Kindelemente¶
Erlaubte Elternelemente: else, else-if, if, setup, while
Erlaubte Kindelemente:
Keine
Zugehörige Konzepte und Anwendungsfälle¶
- Dynamische Includes und Fragmentparameter — Explains URI interpolation, scoped include properties, typed fragment params, runtime caller context, nesting, conditions, and cataloged failures for reusable XML composition.
Attribute¶
Alle 5 Attribute anzeigen
default
Optional literal default injected into the child include scope when omitted by the caller.
optional; string; Standardwert: null.
description
Human-readable explanation surfaced by static schema consumers.
optional; string; Standardwert: null.
name
Fragment param name delivered by
erforderlich; string.
type
Param type used for parse-time validation of literal property values.
optional; string; Standardwert: "string"; Werte: string, int, enum, path.
values
Whitespace-separated enum values when type='enum'.
optional; string; Standardwert: null.