Ausführungsreihenfolge

Dieses Dokument enthält die TAL Spezifikation 1.4. Das Dokument wurde mit Microsoft Word erstellt und mit WordXML automatisch in XML , HTML und HTMLHelp (.chm) konvertiert. Mit WordXML, dem Word-PlugIn der struktur AG, erweitern Sie Microsoft Word zu einem leistungsfähigen XML-Werkzeug.


Ausführungsreihenfolge

Bei nur einer TAL-Anweisung pro Element ist die Ausführungsreihenfolge einfach. Beginnend mit dem Wurzelelement werden die Anweisungen jedes Elements ausgeführt und dann die Kind-Elemente der Reihe nach besucht bzw. abgearbeitet. Jede beliebige Kombination von Anweisungen kann in einem Element vorkommen, mit der Ausnahmen, daß ‘replace’ und ‘content’ nicht im selben Element stehen dürfen. Enthält ein Element mehrere Anweisungen, so werden sie entsprechend der folgenden Prioritätenliste abgearbeitet:

  1. define
  2. condition
  3. repeat
  4. content or replace
  5. attributes
  6. omit-tag

Da die ‘on-error’-Anweisung nur dann ausgeführt wird wenn ein Fehler auftritt, wird sie in der Liste nicht geführt. Der Sinn hinter dieser Prioritätenverteilung ist folgender: Die Deklaration von Variablen kann auch andere Anweisungen betreffen, deshalb kommt ‘define’ zuerst. Dann gilt es zu entscheiden, ob das aktuelle Element überhaupt eingefügt werden soll, also muß jetzt ‘condition’ folgen. Da ‘condition’ bereits von Variablen abhängen kann, die mit ‘define’ deklariert wurden, muß es danach kommen. Es ist sehr nützlich, verschiedene Teile eines Elements bei jeder Wiederholung einer Schleife mit unterschiedlichen Daten zu ersetzen, deshalb kommt jetzt ‘repeat’. Es macht wenig Sinn, die Attribute eines Elements zu ersetzen und sie dann zu löschen, also kommt ‘attributes’ zum Schluß. Die übrigen Anweisungen stehen im Konflikt zueinander, weil sie entweder das Anweisungselement verändern oder ersetzen.

Soll die Ausführungsreihenfolge verändert werden, müssen die Anweisungen in andere Elemente gepackt werden, etwa <div> oder <span>.

Ein Beispiel:

<p tal:define=“x /a/long/path/from/the/root“

tal:condition=”x”

tal:content=”x/txt”

tal:attributes=”class x/class”> Ex Text

</p>