<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></p><blockquote><dl><dt>(179) <dfn>データタグ</dfn> (<dfn xml:lang="en">data tag</dfn>)</dt><dd>
<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>する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列</anchor>。
<strong>備考</strong> <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>を含む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の中の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字データ</anchor>として作用する。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 4151</anchor>‐1992 3.</src></dd></dl></blockquote><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">改訂が必要</ed><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> JIS X 4151‐1992 6.3.2 の要約 :<ul><li><code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DATATAG</anchor> YES</code> であればデータタグが有効</li><li>要素型に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データタグ群</anchor>を指定できる</li><li>{要素の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ</anchor>がデータタグ群に呼応する内容を持つ1個の要素になっている} = {要素及びその<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>に合致する文字列を、その要素のデータタグという} → データタグは、要素の終了タグ兼その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字データ</anchor>となる。</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素型名</anchor>がその要素のデータタグ群に呼応する要素として現れても、要素型名が別の文脈で見ると1個の要素字句となっているときは、データタグとはみなさない</li><li>要素型名が別のデータタグ群の異なったデータタグ形式に合致している場合も、データタグとはみなさない</li><li>データタグはデータタグ雛形に最長一致する直近要素を終了させる。<ul><li>要素のデータ内容は、前から1字ずつ検査し、各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字位置</anchor>でデータタグ形式のデータタグ雛形と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最長一致</anchor>で照合する。</li><li>検査対象の開いている要素が複数ある場合、直近の要素から順に照合する。</li></ul></li><li>データタグ雛形と内容の照合は、内容のマーク認知と参照置換の後で、 <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RS</anchor></code>, <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RE</anchor></code> 無視の前に行う。</li><li>終了タグを認知しない文脈 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CDATA区間</anchor>とか) では認知しない。</li><li>データ埋め草雛形との照合では、雛形の文字列が零回以上出現してよい。最後のものが雛形全体の終端となる。</li><li>データタグを持つ要素は終了タグを省略したとはみなさない。</li><li>データタグ長は <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTAGLEN</anchor></code> 以下でなければならない。</li></ul></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> 参考 3 2.4 に解説がありますから、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal>
のわけわかめな規定で理解できなくても、
これを読めばどういうものかは分かります。</p><p>JIS の参考では他のマーク最小化機構と組合せた説明になっているので、
ここではデータタグに絞った例でご説明しましょう。
例えば、<pre>&lt;s&gt;&lt;h&gt;Note&lt;/h&gt;: &lt;t&gt;データタグは多少は便利。&lt;/t&gt;&lt;/s&gt;</pre><p>という文書を考えます。
ここで、 <samp>Note</samp> の部分 (小見出し)
は常に親要素の先頭に来ますし、常に <samp>: </samp> が続きます。
(但し <samp>: </samp> は小見出しの一部とはみなしません。)
このような場合には、<pre>&lt;s&gt;Note: &lt;t&gt;データタグは多少は便利。&lt;/t&gt;&lt;/s&gt;</pre><p>とだけ書けば構造は (少なくても人間には) 十分自明です。
これを SGML 的にはっきりさせるために、
文書型定義中で<pre>&lt;!ELEMENT s - - (h, #PCDATA, t)&gt;</pre><p>だった部分を、<pre>&lt;!ELEMENT s - - ([h, &quot;:&quot;, &quot; &quot;], t)&gt;</pre><p>とします。</p></p></p></p></p></body></html>