<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:">媒体型</anchor> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/plain</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:">RFC 5147</anchor>
で規定されています。</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:">RFC 5147</anchor> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案標準</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> となるまでには長い年月を要しました。
古い案は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> となるものとは異なった、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XPointer</anchor> 風の構文を提案していたこともありました。</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:">RFC</anchor> 化される前に独自の構文で実装していたものもありました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 現在まで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5147</anchor> はほとんど実装されておらず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> で使われることも滅多にないようです。</p><section><h1>RFC 5147 に基づく定義</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5147</anchor></dfn> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2046</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src> で、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>を規定するものです。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><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> <cite xml:lang="en">RFC 5147 - URI Fragment Identifiers for the text/plain Media Type</cite> (<time>2015-02-23 15:16:25 +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://tools.ietf.org/html/rfc5147">http://tools.ietf.org/html/rfc5147</anchor-external></li></ul></refs><p>以下で紹介する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> 構文は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5147</anchor> 3. からの<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="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <strong>素片識別子構文概要</strong>:
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/plain</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>は、
<code class="example" xml:lang="en">name=value;name=value</code> のようないわゆる <code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">param</anchor></code>
形式の構文を採用しています。ただし、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor> の指定はそれに沿っていないなど、
変則的なところもあります。</p><p><var xml:lang="en">name</var> の部分は「scheme」と呼ばれています。1つ目の <var xml:lang="en">name</var>
は必ず <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">char</anchor></code> か <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">line</anchor></code> です
(<code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text-scheme</anchor></code>)。これらが実際に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME実体</anchor>中の部分を現します。
2つ目以降の <var xml:lang="en">name</var> は <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">md5</anchor></code> や
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">length</anchor></code> で、
識別する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME実体</anchor>に関する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整合性</anchor>の判断のための情報を含めるために使います。</p><p>Scheme の名前は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>を区別<em>します</em> <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:">RFC 5147</anchor> 3.</src>。</p><pre>   text-fragment   =  text-scheme 0*( &quot;;&quot; integrity-check )
   text-scheme     =  ( char-scheme / line-scheme )</pre><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</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:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
誤り訂正を試みては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。正しくない旨を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に通知しても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">構いません</strong></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:">RFC 5147</anchor> 4.4.</src></p><section><h1><code class="URI" xml:lang="en">char</code>, <code class="URI" xml:lang="en">line</code></h1><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> <strong><code class="URI" xml:lang="en">char</code> scheme</strong>:
<dfn><code class="URI" xml:lang="en">char</code> scheme</dfn> は、<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:">RFC 5147</anchor> 2.2.1., 2.2.2.</src>。</p><pre>   char-scheme     =  &quot;char=&quot; ( position / range )</pre><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> <strong><code class="URI" xml:lang="en">line</code> scheme</strong>:
<dfn><code class="URI" xml:lang="en">line</code> scheme</dfn> は、<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:">RFC 5147</anchor> 2.2.3., 2.2.4.</src>。
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">line</anchor></code> scheme によって識別される「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行</anchor>」には、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行末</anchor> (line ending) も含まれており、<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:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></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:">RFC 5147</anchor> 2.1.2.</src>。</p><pre>   line-scheme     =  &quot;line=&quot; ( position / range )</pre><p><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> <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>は長さ 0、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">範囲</anchor>は長さ 0 以上 (狭義には 0 より大きい) です。
<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:">RFC 5147</anchor> 2.1.1.</src></p><pre>   position        =  number
   range           =  ( position &quot;,&quot; [ position ] ) / ( &quot;,&quot; position )
   number          =  1*( DIGIT )</pre><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:">位置</anchor> 0 になり、その1つ先 (1<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>後)
が 1 になります。 <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:">RFC 5147</anchor> 2.1.1., 2.2.1., 2.2.3., 2.2.4.</src></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:">範囲</anchor>の始めや終わりが省略された場合には、当該 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME実体</anchor>全体の最初や最後が指定されたものと扱わなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></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:">RFC 5147</anchor> 2.1.1., 4.2.</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</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>と同じになります。)
<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:">RFC 5147</anchor> 2.1.1.</src>
逆転している場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>を無視しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></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:">RFC 5147</anchor> 4.2..</src>。</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:">MIME実体</anchor>の末尾を超えた部分を指す場合、一番最後の位置を指すものと扱わなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></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:">RFC 5147</anchor> 2.1.1., 4.2.</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <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:">MIME実体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>を考慮しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></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:">RFC 5147</anchor> 2.</src>。つまり、「<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:">BOM</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:">RFC 5147</anchor> 2.1.2.</src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <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:">CRLF</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LF</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:"><strong xmlns="http://www.w3.org/1999/xhtml">ならず</strong></anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRLF</anchor> に対応<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">するべき</strong></anchor>であり、
その場面で関係しない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行末</anchor>の表現に対応しても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">構いません</strong></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:">RFC 5147</anchor> 4.1.</src></p></section><section><h1>整合性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <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:"><strong xmlns="http://www.w3.org/1999/xhtml">構いません</strong></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:">RFC 5147</anchor> 4.3.</src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</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:"><strong xmlns="http://www.w3.org/1999/xhtml">するべき</strong></anchor>で、
その旨を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に通知しても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">構いません</strong></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:">RFC 5147</anchor> 4.3.</src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</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>を元に戻した後に適用されます <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:">RFC 5147</anchor> 2.3., 3.1.</src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</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:">RFC 5147</anchor> では
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">length</anchor></code> と <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">md5</anchor></code> が定義されています。
将来の拡張のため、それ以外の名前は無視しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">ならない</strong></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:">RFC 5147</anchor> 3.1.</src>
なお、 scheme の名前では<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:">RFC 5147</anchor> 3.</src>。
同じ種類の情報が複数与えられた場合について明記はされていませんが、
同様にどれを用いてもよいということでしょうか。</p><pre>   integrity-check =  ( length-scheme / md5-scheme )
                        [ &quot;,&quot; mime-charset ]</pre><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</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:">MIME実体</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</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:">RFC 5147</anchor> 3.1.</src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整合性</anchor>情報に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor> が指定されている場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>はその <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor>
が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME実体</anchor>のものと一致するか検査しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
一致しなかった場合には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整合性</anchor>情報を使っては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>が、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の変換を行った後に使うのは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">構いません</strong></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:">RFC 5147</anchor> 2.3.</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <strong><code class="URI" xml:lang="en">length</code> scheme</strong>: 
<dfn><code class="URI" xml:lang="en">length</code> scheme</dfn> は、適用対象の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME実体</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:">RFC 5147</anchor> 3.1.</src>。</p><pre>   length-scheme   =  &quot;length=&quot; number</pre><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <strong><code class="URI" xml:lang="en">md5</code> scheme</strong>: 
<dfn><code class="URI" xml:lang="en">md5</code> scheme</dfn> は、適用対象の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME実体</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MD5</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">指紋</anchor>を指定します。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor> が指定されている場合、それが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MD5</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>を実行した際に用いた <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor> になります。
値は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base16</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:">RFC 5147</anchor> 3.1.</src></p><pre>   md5-scheme      =  &quot;md5=&quot; md5-value
   md5-value       =  32HEXDIG</pre></section><section><h1>レンダリング</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <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>を示す際に強調 (highlighting) 以外の方法を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></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:">RFC 5147</anchor> 2.1.1.</src>。
(長さ 0 の<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="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <strong>範囲のレンダリング</strong>:
強調 (highlighting)  のような概念を持つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は、
長さが零以上の素片を示すためにそのような概念を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></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:">RFC 5147</anchor> 2.1.1.</src></p></section><section><h1>実装</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> あまり実装されているという話は聞きません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Annoplus</anchor> が実装しているといいます。</p></section><section><h1>例</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end><pre>   http://example.com/text.txt#char=100</pre></p><p>100番目の<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>が100<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><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">出典: <src xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5147</anchor> 5.</src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end><pre>   http://example.com/text.txt#line=10,20</pre></p><p><em>11行目</em>から20行目までを表します。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>が11行に満たない場合、
最後の<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>が11行<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>で20行に満たない場合、
11行目から最後までを表します。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">出典: <src xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5147</anchor> 5.</src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end><pre>   https://example.com/text.txt#line=,1</pre></p><p>最初の行を表します。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">出典: <src xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5147</anchor> 5.</src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end><pre>   ftp://example.com/text.txt#line=10,20;length=9876,UTF-8</pre></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>されている状態で9876<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の場合
(や実装が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整合性</anchor>を検査しない場合) に、<em>11行目</em>から20行目までを表します。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">出典: <src xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5147</anchor> 5.</src></comment-p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</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:">RFC 5147</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>をベースにしているので、
「2行目」が「<code class="URI" xml:lang="en">#line=1,2</code>」になるなど、自然な表記とずれが生じています。
なんでこんなのにしちゃったんでしょうか。</p></section></section><section><h1>w3m の実装</h1><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:">w3m</anchor> は素片識別子を行数 (最初が <code class="URI">1</code> 行目) とみなすようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> ( (<time>2005-07-08 21:44:55 +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://dret.net/netdret/docs/wilde-ht2005-textfrag.pdf">http://dret.net/netdret/docs/wilde-ht2005-textfrag.pdf</anchor-external></p></section></body></html>