Omitempty
OmitEmpty
Kurzbeschreibung
Das XML-Element
<OmitEmpty>dient dazu, Inhalte nur dann weiterzuverarbeiten, wenn sie nach der Auflösung einen gewünschten Inhalt besitzen.Dadurch lassen sich optionale Bereiche einer Dokumentvorlage einfach und übersichtlich steuern, ohne eine zusätzliche
<If>-Bedingung erstellen zu müssen.
Einordnung
Bereich: Bedingungen und Schleifen
Schwierigkeitsgrad: ⭐⭐⭐☆☆
Vorkenntnisse: Variable · Text
Siehe auch
- If
- Case
- Variable
Zweck
<OmitEmpty> wird verwendet, um Inhalte automatisch zu unterdrücken, wenn diese leer oder nicht gewünscht sind.
Dadurch kann auf viele einfache <If>-Konstrukte verzichtet werden.
Ein typisches Einsatzgebiet sind optionale Informationen innerhalb einer Anschrift oder eines Informationsblocks.
Position innerhalb der Dokumentvorlage
<OmitEmpty> kann überall dort verwendet werden, wo Inhalte nur unter bestimmten Voraussetzungen ausgegeben werden sollen.
Es umschließt den kompletten XML-Bereich, der gegebenenfalls verworfen werden soll.
<OmitEmpty>
...
</OmitEmpty>Attribute
| Attribut | Beschreibung |
|---|---|
| Contains | Prüft den vollständig aufgelösten Inhalt innerhalb von <OmitEmpty>. Enthält dieser den angegebenen Text, wird der gesamte Inhalt von <OmitEmpty> verworfen. |
<OmitEmpty> besitzt darüber hinaus keine weiteren Attribute.
Arbeitsweise
Zunächst werden sämtliche XML-Elemente innerhalb von <OmitEmpty> vollständig verarbeitet.
Anschließend entscheidet <OmitEmpty>, ob der enthaltene Bereich erhalten bleibt oder verworfen wird.
Dabei gibt es zwei Anwendungsfälle:
- Ohne
Containswerden leere Inhalte automatisch unterdrückt. - Mit
Containskann zusätzlich geprüft werden, ob ein bestimmter Text innerhalb des erzeugten Inhalts vorkommt.
Verwendung ohne Contains
Ohne das Attribut Contains dient <OmitEmpty> dazu, leere Inhalte automatisch auszublenden.
Ein typisches Beispiel ist ein optionaler Anschriftenzusatz.
Besitzt eine Anschrift keinen Zusatz, wird der komplette Bereich innerhalb von <OmitEmpty> entfernt.
Dadurch entstehen keine leeren Zeilen im Dokument.
Verwendung mit Contains
Mit dem Attribut Contains kann geprüft werden, ob ein bestimmter Text Bestandteil des erzeugten Inhalts ist.
Wird dieser Text gefunden, verwirft <OmitEmpty> den kompletten Inhalt.
Dadurch können beispielsweise technische Platzhalter oder definierte Standardtexte automatisch entfernt werden.
Hinweis
Containsprüft den bereits aufgelösten Inhalt.Die Prüfung erfolgt also erst, nachdem alle Variablen, Texte und weiteren XML-Elemente verarbeitet wurden.
OmitEmpty oder If?
Sowohl <OmitEmpty> als auch <If> können Inhalte unterdrücken.
Sie verfolgen jedoch unterschiedliche Ansätze.
| OmitEmpty | If |
|---|---|
| Prüft den erzeugten Inhalt. | Prüft eine frei definierbare Bedingung. |
| Ideal für optionale Inhalte oder Leerwerte. | Geeignet für fachliche Entscheidungen und Vergleiche. |
| Weniger XML-Code. | Höhere Flexibilität. |
Als Faustregel gilt:
<OmitEmpty>, wenn lediglich leere oder unerwünschte Inhalte entfernt werden sollen.<If>, wenn unterschiedliche Inhalte abhängig von einer Bedingung ausgegeben werden.
Typische Einsatzgebiete
<OmitEmpty> eignet sich insbesondere für:
- optionale Anschriftenbestandteile
- Adresszusätze
- Telefonnummern
- E-Mail-Adressen
- Ansprechpartner
- optionale Informationsblöcke
- Tabellenzellen mit optionalem Inhalt
Best Practices
<OmitEmpty>bevorzugen, wenn lediglich leere Inhalte unterdrückt werden sollen.- Den gesamten optionalen Bereich innerhalb von
<OmitEmpty>platzieren. Containsnur verwenden, wenn gezielt auf einen bestimmten Text geprüft werden soll.- Dokumente sowohl mit als auch ohne vorhandene Daten testen.
Developer-Tipp
Fragen Sie sich zunächst:
Soll lediglich ein leerer oder bestimmter Inhalt entfernt werden?
Falls ja, ist
<OmitEmpty>häufig die einfachere und besser lesbare Lösung gegenüber einer vollständigen<If>-Bedingung.
XML-Wissen
<OmitEmpty> wertet nicht einzelne XML-Elemente aus.
Stattdessen wird zunächst der vollständige Inhalt innerhalb von <OmitEmpty> erzeugt.
Erst anschließend entscheidet das Element anhand des Ergebnisses beziehungsweise des Attributs Contains, ob der komplette Bereich erhalten bleibt oder verworfen wird.
Typische Fehler
If verwenden, obwohl OmitEmpty ausreicht
Für einfache Leerprüfungen oder optionale Inhalte wird häufig unnötig ein <If> verwendet.
<OmitEmpty> führt in diesen Fällen meist zu einem deutlich übersichtlicheren XML-Code.
Nur die Variable einschließen
Wird lediglich eine Variable innerhalb von <OmitEmpty> platziert, bleiben möglicherweise Leerzeilen oder Trennzeichen erhalten.
Sinnvoll ist es daher häufig, den kompletten optionalen Dokumentbereich innerhalb von <OmitEmpty> zu platzieren.
Wirkung von Contains falsch verstehen
Contains sorgt nicht dafür, dass ein Inhalt ausgegeben wird.
Im Gegenteil:
Wird der konfigurierte Text im aufgelösten Inhalt gefunden, wird der gesamte Bereich innerhalb von <OmitEmpty> verworfen.
Fazit
<OmitEmpty> ist ein einfaches und wirkungsvolles XML-Element, um optionale Inhalte automatisch auszublenden.
Gerade bei Anschriften, Kontaktdaten oder Informationsblöcken sorgt es für übersichtlicheren XML-Code und verhindert unnötige Leerzeilen.
Durch das optionale Attribut Contains können zusätzlich gezielt Inhalte unterdrückt werden, die einen bestimmten Text enthalten.