<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> にはいくつかの<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>雛形</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">template</rt></rubyb></dfn> (<dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テンプレート</anchor></dfn>) があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で解釈されるものとしては、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Components</anchor> の機能である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor>
<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">template</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>と、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XSLT</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形</anchor> (<code class="XMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xslt:template</anchor></code>) があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 歴史的には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の一部として <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ束縛</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 2.0</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">反復雛形</anchor> (<code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">repeat</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>など)、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ雛形</anchor> (<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">datatemplate</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>など)、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XBL2</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形</anchor> 
(<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">template</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>など) が提案されていましたが、既に破棄されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Gecko</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XBL1</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形</anchor>を実装しています (これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XBL2</anchor> に引き継がれ、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Components</anchor>
の <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">template</anchor></code> へとつながります)。また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XUL</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形</anchor>
(<code class="XMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">template</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>など) も実装しています (これは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ雛形</anchor>につながりましたが破棄されました)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形</anchor>の埋め込みには<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XMLデータアイランド</anchor>や通常の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプトデータブロック</anchor>などが使われてきましたが、
現在は <code>template</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>を使うのが普通になっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 一方 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサーバー</anchor>では各種言語で実装された様々な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テンプレートエンジン</anchor>を使って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>を構築するのが一般的になっています。
そのほとんどはテキストベースまたは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> ベースの独自の言語を使っています。稀に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XSLT</anchor>
など <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> ベースのこともあります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形エンジン</anchor>参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 更に、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>による<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>でもサーバー側と同様に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テンプレート</anchor>言語の処理が行われることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 
これらとは少し趣が異なりますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形リテラル</anchor>があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサーバー</anchor>などで、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URI雛形</anchor>が使われていることもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="en">So you need a template engine..</cite> (<time>2013-06-08 20:52:00 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://garann.github.io/template-chooser/">http://garann.github.io/template-chooser/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite>Using type inference to make web templates robust against XSS</cite>
(<time>2015-03-06 07:35:05 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://js-quasis-libraries-and-repl.googlecode.com/svn/trunk/safetemplate.html">https://js-quasis-libraries-and-repl.googlecode.com/svn/trunk/safetemplate.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="en">straker/html-tagged-template: Proposal to improve the DOM creation API so developers have a cleaner, simpler interface to DOM creation and manipulation.</cite>
(<time>2016-03-11 15:26:32 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/straker/html-tagged-template/">https://github.com/straker/html-tagged-template/</anchor-external></figcaption><blockquote><p>Improve the DOM creation API so developers have a cleaner, simpler interface to DOM creation and manipulation.</p></blockquote></figure></body></html>