Attributes
Attributes
Syntax:
argument ::= attribute_statement[‘;’
attribute_statement]*
attribute_statement ::= attribute_name
expression
attribute_name ::= [namespace’:’]Name
namespace ::= Name
Merke: Soll in eine Anweisung ein Semikolon eingefügt werden, muß es durch Verdoppelung escaped werden (’;;’).
Soll ein Attributwert durch -oder ein neues Attribut mit-
einem dynamischen Wert ersetzt bzw. erzeugt werden, verwendet man
die ‘attributes’-Anweisung. Ein Attributnamen kann
durch ein Namensraum-Präfix ausgezeichnet werden -- zum Beispiel
‘html:table’ – wenn in einem XML-Dokument mehrere Namensräume
existieren. Der Wert von jedem Ausdruck wird – falls notwendig –
in einen String konvertiert.
Wird der zugewiesene Wert zu ‘nothing ausgewertet’, so wird das Attribut aus dem Element entfernt. Bricht der Ausdruck die Anweisung ab, so bleibt das Attribut unverändert. Jede Attribut-Zuweisung ist unabhängig, d. h. in einer Anweisung können manchen Attributen Werte zugewiesen werden, während andere gelöscht oder unverändert bleiben.
Beispiele:
<a href=“/samples/link.html“ tal:attributes=“href
here/sub/absolute_url”>
<textarea rows=”80” cols=”20” tal:attributes=”rows
request/rows;cols request/cols”>
Wird obige Anweisung in einem Element mit einer aktiven
‘replace’-Anweisung benutzt, kann je nach
Implementierung die ‘attributes’-Anweisung ignoriert werden.
Falls nicht, muß die Ersetzung den ‘structure’-Type
verwenden.Die zurückgegebene Struktur muß mindestens ein Element
enthalten, und die Ersetzung wird auf dem ersten entsprechenden
Element ausgeführt. Zum Beispiel ist für die erste Zeile unten
jede der beiden folgenden Lösungen akzeptabel:
<span tal:replace=“structure an_image“
tal:attributes=“border string:1“>
<img src=”foo.png”>
<img src=”foo.png border=”1”>
Wird es in einem Element mit einer
‘repeat’-Anweisung verwendet, wird die Ersetzung auf
jedem wiederholten Element ausgeführt, und die
Ersetzungs-Anweisung wird für jede Wiederholung neu
ausgewertet.






