<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Template_Attribute_Language</id>
	<title>Template Attribute Language - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Template_Attribute_Language"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Template_Attribute_Language&amp;action=history"/>
	<updated>2026-05-23T06:37:09Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Template_Attribute_Language&amp;diff=970286&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Template_Attribute_Language&amp;diff=970286&amp;oldid=prev"/>
		<updated>2026-01-08T16:36:39Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;Template Attribute Language&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;TAL&amp;#039;&amp;#039;&amp;#039;, sinngemäß übersetzt: „Attributbasierte Schablonensprache“) ist eine [[Templatesprache]] zur Generierung von [[Hypertext Markup Language|HTML]]- und [[Extensible Markup Language|XML]]- (und damit auch [[Extensible Hypertext Markup Language|XHTML]]-) Seiten. Sie verfolgt das Ziel, die Zusammenarbeit von Designern und Programmierern zu erleichtern, indem sowohl die [[Vorlage (Datenverarbeitung)|Templates]] als auch die Ergebnisseiten gültige Dokumente ihrer [[Auszeichnungssprache]] sind. Die Templates können deshalb mit Designwerkzeugen bearbeitet werden, die von TAL nichts wissen, aber die ihnen unbekannten Attribute unbehelligt lassen.&lt;br /&gt;
&lt;br /&gt;
Die TAL entstand im Rahmen des Web-Anwendungsservers [[Zope (Webanwendungsserver)|Zope]]; dort wird in der Regel von [[Zope Page Templates]] gesprochen.&lt;br /&gt;
&lt;br /&gt;
TAL abstrahiert völlig von der eingesetzten [[Programmiersprache]]; lediglich die eingesetzte Sprache für die Ausdrucksauswertung (in der Regel [[Template Attribute Language Expression Syntax|TALES]]) kann implementierungsabhängig sprachspezifische Ausdrücke erlauben, meist in [[Python (Programmiersprache)|Python]].&lt;br /&gt;
&lt;br /&gt;
== Überblick ==&lt;br /&gt;
&lt;br /&gt;
TAL-Templates werden erstellt als Ergebnisdokumente, bei denen die variablen Inhalte durch spezielle Attribute übersteuert werden; Programmcode außerhalb von Elementen, wie z.&amp;amp;nbsp;B. in [[PHP]] oder [[JavaServer Pages|JSP]], ist nicht nötig. Im folgenden Beispiel würde das [[SGML-Element|Element]] &amp;lt;code&amp;gt;&amp;amp;lt;h1&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1 tal:content=&amp;quot;string:Eine völlig andere Überschrift&amp;quot;&amp;gt;&lt;br /&gt;
   Für den Designer sichtbare Überschrift&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
von einem üblichen [[HTML-Editor]] als&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;&lt;br /&gt;
   Für den Designer sichtbare Überschrift&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
behandelt, während die Anwendung des Templates durch den Application-Server&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;&lt;br /&gt;
   Eine völlig andere Überschrift&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
ergibt. Die Angabe eines konstanten [[Zeichenkette|Strings]] ist natürlich ein in der Praxis eher vernachlässigbarer Fall; die möglichen Attributwerte werden von der TAL Expression Syntax ([[Template Attribute Language Expression Syntax|TALES]]) definiert. So können in den vorhandenen Python-Implementierungen beispielsweise [[Python (Programmiersprache)|Python]]-Ausdrücke verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Wenn XML-Dokumente generiert werden sollen, ist es wichtig, den XML-Namespace einzutragen (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;xmlns:tal=&amp;quot;http://xml.zope.org/namespaces/tal&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Makros ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe der [[METAL]] (Macro Expansion TAL) ist es möglich, Code über Template-Grenzen hinweg wiederzuverwenden.&lt;br /&gt;
&lt;br /&gt;
=== Internationalisierung ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe der &amp;lt;code&amp;gt;i18n&amp;lt;/code&amp;gt;-Attribute (siehe [[i18n TAL]]) können lokalisierte Seiten generiert werden.&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
Es werden folgende Attribute erkannt, denen im Normalfall das Präfix &amp;lt;code&amp;gt;tal:&amp;lt;/code&amp;gt; vorangestellt werden muss:&lt;br /&gt;
&lt;br /&gt;
; define&lt;br /&gt;
: erzeugt innerhalb des durch das [[SGML-Element|Element]] definierten Blocks gültige, lokale [[Variable (Programmierung)|Variablen]]&lt;br /&gt;
; condition&lt;br /&gt;
: entscheidet, ob das Element erzeugt wird&lt;br /&gt;
; repeat&lt;br /&gt;
: erzeugt eine Schleifenvariable, mit der über eine Sequenz iteriert wird, z.&amp;amp;nbsp;B. um eine Auswahlliste oder eine Tabelle zu erzeugen&lt;br /&gt;
; content&lt;br /&gt;
: ersetzt den Inhalt des Elements&lt;br /&gt;
; replace&lt;br /&gt;
: ersetzt das Element (und ist deshalb nicht gemeinsam mit content oder attributes einsetzbar)&lt;br /&gt;
; attributes&lt;br /&gt;
: ersetzt die angegebenen Attribute (z.&amp;amp;nbsp;B. könnten mit &amp;lt;code&amp;gt;tal:attributes=&amp;quot;name name; id name&amp;quot;&amp;lt;/code&amp;gt; Name- und ID-Attribut eines Eingabefelds mit Hilfe der Variablen „name“ definiert werden)&lt;br /&gt;
; omit-tag&lt;br /&gt;
: erlaubt, das Tag dynamisch fortzulassen und nur den Inhalt darzustellen&lt;br /&gt;
; on-error&lt;br /&gt;
: wird ausgeführt, wenn ein Fehler auftritt, und funktioniert dann wie „content“&lt;br /&gt;
&lt;br /&gt;
Wenn ein [[SGML-Element|Element]] mehrere TAL-Attribute hat, werden diese (unabhängig von der Reihenfolge ihrer Notierung) in der oben angegebenen (logisch naheliegenden) Reihenfolge ausgewertet; die Reihenfolge der Variablen-Definitionen innerhalb eines „define“-Attributs ist hingegen signifikant, sodass eine Variable in späteren Zuweisungen in demselben define-Attribut verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Wenn es kein Element gibt, das sich als Träger der TAL-Attribute anbietet, können auch spezielle TAL-Tags verwendet werden; in diesem Fall ist das Präfix &amp;lt;code&amp;gt;tal:&amp;lt;/code&amp;gt; optional. Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tal:if condition=&amp;quot;context/itemlist&amp;quot;&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
&amp;lt;/tal:if&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Der Code innerhalb des &amp;lt;code&amp;gt;&amp;lt;tal:if&amp;gt;&amp;lt;/code&amp;gt;-Elements wird dabei verwendet, wenn beispielsweise die im Kontext (was immer das für den verwendeten Application-Server bedeutet, beispielsweise ein Objekt) definierte Variable „itemlist“ &amp;#039;&amp;#039;true&amp;#039;&amp;#039; ist, im Falle einer Liste also mindestens ein Element enthält.&lt;br /&gt;
Der Bezeichner nach dem Doppelpunkt ist dabei beliebig; er muss lediglich bei öffnendem und schließendem Tag gleich sein.&lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
&lt;br /&gt;
TAL/TALES/METAL werden von folgenden Projekten verwendet:&lt;br /&gt;
&lt;br /&gt;
* Web-Anwendungsserver [[Zope (Webanwendungsserver)|Zope]]&lt;br /&gt;
* [[Roundup (Bugtracker)]]&lt;br /&gt;
&lt;br /&gt;
== Andere Implementierungen ==&lt;br /&gt;
&lt;br /&gt;
Neben der ursprünglichen [[Zope (Webanwendungsserver)|Zope]]-Implementierung gibt es (ohne Anspruch auf Vollständigkeit) die nachfolgend aufgeführten:&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
* JPT: [[Java (Programmiersprache)|Java]] Page Templates ([http://christophermrossi.com/jpt/ christophermrossi.com])&lt;br /&gt;
* JavaZPT ([https://javazpt.sourceforge.net/ javazpt.sourceforge.net])&lt;br /&gt;
&lt;br /&gt;
=== JavaScript ===&lt;br /&gt;
* Distal (http://code.google.com/p/distal)&lt;br /&gt;
* DomTal (https://github.com/drslump/DomTal)&lt;br /&gt;
&lt;br /&gt;
=== Perl ===&lt;br /&gt;
* PETAL, die [[Perl (Programmiersprache)|Perl]] Template Attribute Language ([http://search.cpan.org/dist/Petal/ search.cpan.org])&lt;br /&gt;
* Template-TAL ([http://search.cpan.org/dist/Template-TAL search.cpan.org])&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
* PHPTAL, die [[PHP]] Inkarnation von TAL (https://phptal.org/)&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
* SimpleTAL ([http://www.owlfish.com/software/simpleTAL/ owlfish.com] [https://www.owlfish.com/software/simpleTAL/tal-guide.html TAL-guide])&lt;br /&gt;
* OpenTAL ([http://savannah.nongnu.org/projects/opental/ savannah.nongnu.org])&lt;br /&gt;
* ZPT ([https://zpt.sourceforge.net/ zpt.sourceforge.net] – eine Standalone-Version der [[Zope Page Templates]])&lt;br /&gt;
* Chameleon (https://chameleon.readthedocs.io)&lt;br /&gt;
&lt;br /&gt;
=== XSL ===&lt;br /&gt;
* XSLTAL, transformiert TAL mittels [[XSL]] in [[XSLT]] (http://wiki.flux-cms.org/display/FLX/Templates+XSLTAL)&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Template Attribute Language Expression Syntax|TALES]], [[METAL]], [[i18n TAL]]&lt;br /&gt;
* [[Template Engine]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Erik Möller:&amp;lt;!-- dürfte unserer sein: [[mw:User:Erik Moeller (WMF)]] --&amp;gt; &amp;#039;&amp;#039;Vorlagen-TALent – Web-Templates mit TAL, TALES und METAL&amp;#039;&amp;#039; (Praxis, TAL-Templates für Zope X3, Template Attribute Language, TAL, TALES, METAL, Content-Management-System, CMS, PHPTAL, PETAL, JavaZPT). In: &amp;#039;&amp;#039;[[c’t]]&amp;#039;&amp;#039;, 3/2005, S. 194&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.zope.org/ZPT/TALSpecification14 Spezifikation der Version 1.4]&lt;br /&gt;
* [http://docs.zope.org/zope2/zope2book/AppendixC.html Zope Page Templates Reference] (im Zope-Book)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Templatesprache]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>