Zum Inhalt

Element <item>

Zweck: Definiert eine auswählbare Eintragsform innerhalb einer Liste.

Warum: Verwende dieses Element, um eine unabhängig auswählbare Form in einer list zu deklarieren.

Beispiel

1
<item/>

Entscheidungshilfe

Fachlicher Nutzen: Definiert eine unabhängig auswählbare fachliche Form innerhalb einer heterogenen Liste.

  • Verwenden, wenn

    • Wenn ein Listeneintrag eigene Felder, Quelle, Anzahl oder Bedingung benötigt.
  • Anderen Ansatz wählen, wenn

    • Wenn der Wert ein eigenständiges Feld ist oder alle Einträge dieselbe Struktur besitzen.
  • Voraussetzungen

    • Platziere item in list und definiere die zu dieser Form gehörenden Felder.
  • Alternativen

    • Verwende nestedKey für wiederholte Datensätze einer gemeinsamen Form. (Siehe: <nestedKey>)

Vollständige Beispiele

Verschachtelte Objekte, bedingte Listen, Arrays und Zweige zusammensetzen

Verwende diese Form, wenn ein deterministisches Produkt verschachtelte Datensätze, heterogene Listeneinträge, Literal-Arrays und exklusive Felder kombiniert.

structured-profile/datamimic.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<setup rngSeed="42" numProcess="1">
    <generate name="profiles" count="3" target="LogExporter">
        <key name="id" generator="IncrementGenerator"/>
        <nestedKey name="address" type="dict">
            <key name="city" constant="Berlin"/>
            <key name="postal_code" constant="10115"/>
        </nestedKey>
        <list name="contacts" converter="RemoveNoneOrEmptyElement">
            <item>
                <key name="channel" constant="email"/>
                <key name="value" script="'customer-' + str(id) + '@example.test'"/>
            </item>
            <item condition="id % 2 == 0">
                <key name="channel" constant="sms"/>
                <key name="value" script="'+49-30-' + str(100000 + id)"/>
            </item>
        </list>
        <array name="roles" type="literal">
            <value constant="customer"/>
            <value constant="newsletter"/>
        </array>
        <condition>
            <if condition="id == 1">
                <key name="segment" constant="new"/>
            </if>
            <else-if condition="id == 2">
                <key name="segment" constant="active"/>
            </else-if>
            <else>
                <key name="segment" constant="loyal"/>
            </else>
        </condition>
    </generate>
</setup>

Regeln und ungültige Kombinationen

Ein item-type erfordert eine source.

Attribute: type, source

Warum: Der Typ wählt die aus der konfigurierten Quelle gelesene Datensatzform und besitzt keinen eigenständigen Wert.

Gültige Kombination
1
<item source="data/items.ent.csv" type="dict"/>
Ungültige Kombination
1
<item type="dict"/>
separator und sourceScripted erfordern eine source.

Attribute: source, separator, sourceScripted

Warum: Diese Optionen verändern das Lesen der Quelle und wirken nicht auf ein ausschließlich durch Kindelemente definiertes item.

Gültige Kombination
1
<item source="data/items.ent.csv" separator="|"/>
Ungültige Kombination
1
<item separator="|"/>

Erlaubte Elternelemente / Erlaubte Kindelemente

Erlaubte Elternelemente: else, else-if, if, list, while

Erlaubte Kindelemente:

array, element, id, key, list, nestedKey

Attribute

Alle 7 Attribute anzeigen

condition

Condition for including the item in the list.

optional; string; Standardwert: null.

separator

Separator for item data.

optional; string; Standardwert: null.

source

Source of data for the item.

optional; string; Standardwert: null.

sourceScripted

Enable or disable scripted sources for the item.

optional; boolean; Standardwert: null.

type

Item type (paired with source).

optional; string; Standardwert: null.

variablePrefix

Prefix before field names inside selectors.

optional; string; Standardwert: null.

variableSuffix

Suffix after field names inside selectors.

optional; string; Standardwert: null.