# `Dmn.Model.Expressions`
[🔗](https://github.com/FeeJai/BDM/blob/dmn-v0.1.0/apps/dmn/lib/dmn/model/expressions.ex#L1)

The boxed expressions of DMN 1.6 (clauses 7.3, 8.3 and 10.5): the decision logic of a decision, the encapsulated logic of a
business knowledge model, and what is inside them.

| Struct | XML | Is |
| ------ | --- | -- |
| `LiteralExpression` | `literalExpression` | the text of an expression, FEEL if the language is that |
| `Context` | `context` | entries with a variable, and perhaps a last one with none: the result |
| `FunctionDefinition` | `functionDefinition` | `function(parameters) body` |
| `Invocation` | `invocation` | a call of a function by the names of its parameters |
| `Relation` | `relation` | a table of values, a list of contexts |
| `ListExpression` | `list` | the list of its items |
| `Conditional` | `conditional` | `if`, `then`, `else` |
| `Filter` | `filter` | `in[match]` |
| `Iterator` | `for`, `some`, `every` | `for` and the quantifiers |
| `Dmn.Model.DecisionTable` | `decisionTable` | rules |

Every one has `id`, `label`, `line`, and `type_ref`, the declared type of its value (`nil` for none).

# `t`

```elixir
@type t() ::
  Dmn.Model.Expressions.LiteralExpression.t()
  | Dmn.Model.Expressions.Context.t()
  | Dmn.Model.Expressions.FunctionDefinition.t()
  | Dmn.Model.Expressions.Invocation.t()
  | Dmn.Model.Expressions.Relation.t()
  | Dmn.Model.Expressions.ListExpression.t()
  | Dmn.Model.Expressions.Conditional.t()
  | Dmn.Model.Expressions.Filter.t()
  | Dmn.Model.Expressions.Iterator.t()
  | Dmn.Model.DecisionTable.t()
```

# `element_names`

```elixir
@spec element_names() :: [String.t()]
```

The names of the XML elements that are an expression.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
