Skip to main content

Tags reference

Every tag in the TDC DSL, and where each one is covered in depth.

Structure

TagWhat it isSee
<!--…-->A comment
<tdc>The root elementConfiguration
<env>The environment: parameters, sequences, fixturesConfiguration
<sequence>A named sequence declarationSequences
<gen>A data generatorGenerators
<data>Inside a <sequence>: literal text joined into the sequence's value, or — with a name — a constant fieldSequences
<compute>A computed valueCompute Language

Output layout

TagWhat it isSee
<block>The layout of one output recordOutput & formatting
<line>One line inside a recordOutput & formatting
<data>Inside a <line>: literal text with interpolationOutput & formatting
<before> / <after>Text before / after the whole runOutput & formatting
<before_block> / <after_block> / <delimiter_block>Text around / between recordsOutput & formatting
<before_line> / <after_line> / <delimiter_line>Text around / between linesOutput & formatting

Distributions and choice

TagWhat it isSee
<mix>A distribution: a value split by exact percentagesDistributions (mix)
<switch>A lookup table: a value picked by keyLookup tables (switch)
<map>A compact KEY:VALUE table inside <switch>Lookup tables (switch)
<case>One branch inside <mix> or <switch>Distributions (mix) · Lookup tables (switch)
<default>The "else" branch inside <switch>Lookup tables (switch)

Whole records

TagWhat it isSee
<pool>A small table built before the rows; a row draws one whole member from itCoherent records (pool)

Uniqueness

TagWhat it isSee
<distinct>Fields or sequences that must differ within one rowNo repeats within a row
<uniq>A combination of sequences that must be unique across all rowsUnique values

<data> is listed twice because it reads two ways. Inside a <line> it is output: literal text with ${{…}} interpolated into it. Inside a <sequence> it is data: bare, it is the glue between the generators of a composed sequence; with a name, it is a constant field and the only field that costs no draw.

Compute tags (the ones that go inside <compute>) have their own list in the Compute functions reference.