Version 5.8.0

# `SetVariable`

Weist einer Variablen einen Wert zu. Der Wert kann aus mehreren Elementen bestehen (siehe zweites Beispiel).

## Kindelemente

`Attribute`, `ClearPage`, `Column`, `Columns`, `Copy-of`, `Element`, `ForAll`, `Loop`, `Ol`, `Output`, `Paragraph`, `PlaceObject`, `SortSequence`, `Switch`, `Table`, `TableNewPage`, `Tablehead`, `Tablerule`, `Td`, `Tr`, `Ul`, `Value`

## Elternelemente

`AtPageCreation`, `AtPageShipout`, `Case`, `Contents`, `ForAll`, `Function`, `Include`, `Layout`, `Loop`, `Otherwise`, `Record`, `SavePages`, `Section`, `Table`, `Until`, `While`

## Attribute

`execute` (optional, seit Version 4.11.8)
  Führe den Inhalt sofort aus oder später bei der Benutzung.
  - `now`: Führe den Inhalt sofort aus (Voreinstellung).
  - `later`: Führe den Inhalt bei der Benutzung von `Copy-of` aus. Experimentell.
`select` (XPath-Ausdruck, optional)
  Inhalt, der der Variablen zugewiesen wird.
`trace` (optional)
  Zeige Informationen über die Zuweisung in der Logdatei.
  - `yes`: Zeige Informationen.
  - `no`: Zeige keine Informationen (Voreinstellung).
`type` (optional, seit Version 4.3.10)
  Setzt den Datentyp der Variable. Derzeit nur für MetaPost-Variablen unterstützt.
  - `sd:any`: Der voreingestellte Datentyp für die speedata Layoutsprache.
  - `mp:boolean`: Ein boolescher Wert für MetaPost.
  - `mp:cmykcolor`: Eine MetaPost CMYK Farbe.
  - `mp:numeric`: Ein nummerischer Wert für MetaPost.
  - `mp:string`: Eine Zeichenkette für MetaPost.
  - `mp:rgbcolor`: Eine MetaPost RGB Farbe.
`variable` (Text)
  Name der Variablen, der etwas zugewiesen werden soll.

## Bemerkungen

Variablen haben eine globale Sichtbarkeit.

## Beispiel

    <Record element="produkt">
      <SetVariable variable="Textbreite" select="5"/>
      <PlaceObject>
        <Textblock width="{ $Textbreite }">
          <Paragraph>
            <Value select="$Artikelnummer"/>
          </Paragraph>
        </Textblock>
      </PlaceObject>
    </Record>

Folgendes Beispiel zeigt, wie mehrere Absätze in einer Variablen gespeichert werden, um sie anschließend in einem Textblock auszugeben.

    <Record element="produkte">
      <SetVariable variable="Artikeltext"/>
      <ProcessNode select="artikel"/>
      <PlaceObject>
        <Textblock>
          <Value select=" $Artikeltext "/>
        </Textblock>
      </PlaceObject>
    </Record>

    <Record element="artikel">
      <SetVariable variable="Artikeltext">
        <!-- Der vorherige Inhalt wird hinzugefügt -->
        <Value select="$Artikeltext"/>
        <Paragraph>
          <Value select=" @beschreibung " />
        </Paragraph>
      </SetVariable>
    </Record>

#### Inhalt