<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="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <dfn>PRECIS</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:">IETF</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様</anchor>です。</p><section><h1>仕様書</h1><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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <strong><cite xml:lang="en">RFC 7564 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite> (<time>2015-12-21 04:49:41 +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://tools.ietf.org/html/rfc7564">https://tools.ietf.org/html/rfc7564</anchor-external></strong><ul><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 7564 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite> (<time>2015-12-21 04:49:41 +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://tools.ietf.org/html/rfc7564#section-1">https://tools.ietf.org/html/rfc7564#section-1</anchor-external></li><li><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> <cite xml:lang="en">RFC 7564 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite> (<time>2015-12-21 04:49:41 +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://tools.ietf.org/html/rfc7564#section-3">https://tools.ietf.org/html/rfc7564#section-3</anchor-external></li><li><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> <cite xml:lang="en">RFC 7564 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite> (<time>2015-12-21 04:49:41 +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://tools.ietf.org/html/rfc7564#section-4">https://tools.ietf.org/html/rfc7564#section-4</anchor-external></li><li><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> <cite xml:lang="en">RFC 7564 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite> (<time>2015-12-21 04:49:41 +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://tools.ietf.org/html/rfc7564#section-5">https://tools.ietf.org/html/rfc7564#section-5</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <cite xml:lang="en">RFC 7564 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite> (<time>2015-12-21 04:49:41 +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://tools.ietf.org/html/rfc7564#section-6">https://tools.ietf.org/html/rfc7564#section-6</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <cite xml:lang="en">RFC 7564 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite> (<time>2015-12-21 04:49:41 +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://tools.ietf.org/html/rfc7564#section-7">https://tools.ietf.org/html/rfc7564#section-7</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite xml:lang="en">RFC 7564 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite> (<time>2015-12-21 04:49:41 +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://tools.ietf.org/html/rfc7564#section-11">https://tools.ietf.org/html/rfc7564#section-11</anchor-external></li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <cite>RFC Errata Report » RFC Editor</cite> (<time>2016-01-03 15:25:30 +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://www.rfc-editor.org/errata_search.php?rfc=7564">https://www.rfc-editor.org/errata_search.php?rfc=7564</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <cite>Preparation and Comparison of Internationalized Strings (PRECIS) Parameters</cite> (<time>2015-12-18 04:08:22 +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://www.iana.org/assignments/precis-parameters/precis-parameters.xhtml">https://www.iana.org/assignments/precis-parameters/precis-parameters.xhtml</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <cite xml:lang="en">RFC 7613 - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords</cite> (<time>2015-10-23 06:11:01 +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://tools.ietf.org/html/rfc7613#section-3.2">https://tools.ietf.org/html/rfc7613#section-3.2</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <cite xml:lang="en">RFC 7613 - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords</cite> (<time>2015-10-23 06:11:01 +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://tools.ietf.org/html/rfc7613#section-3.3">https://tools.ietf.org/html/rfc7613#section-3.3</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> <cite xml:lang="en">RFC 7613 - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords</cite> (<time>2015-10-23 06:11:01 +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://tools.ietf.org/html/rfc7613#section-4.2">https://tools.ietf.org/html/rfc7613#section-4.2</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <cite xml:lang="en">RFC 7700 - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Nicknames</cite> (<time>2016-01-01 00:50:37 +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://tools.ietf.org/html/rfc7700">https://tools.ietf.org/html/rfc7700</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <cite>RFC Errata Report » RFC Editor</cite> (<time>2016-01-04 22:45:26 +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://www.rfc-editor.org/errata_search.php?rfc=7700">https://www.rfc-editor.org/errata_search.php?rfc=7700</anchor-external></li></ul></refs></section><section><h1>演算</h1><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> 「PRECIS」は、「<em>pr</em>eparation, <em>e</em>nforcement, and
<em>c</em>omparison of <em>i</em>nternationalized <em>s</em>trings」の意味です <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>。</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:">PRECIS</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に対する次のような演算を扱います。</p><figure class="list"><dl><dt><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">執行<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">enforcement</rt></rubyb></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>に関する規則をすべて適用することをいいます 
<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="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src>。</dd><dt><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">比較<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">comparison</rt></rubyb></dfn></dt><dd>
2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に対して、
両者が<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>等価</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">equivalent</rt></rubyb>かどうかを決定するため、
特定の<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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src>。</dd><dt><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">準備<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">preparation</rt></rubyb></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>に関する規則の一部を適用、
あるいは何も適用しないことをいいます
<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="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src>。</dd></dl></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</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>について、
どの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>サーバー</anchor>や<anchor>クライアント</anchor>など)</weak> が責任を持つか、
具体的にいつ行うかは、
<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="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;46</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><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:">執行</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><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src><figure xmlns="http://www.w3.org/1999/xhtml" class="list"><ul><li><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:">サーバー</anchor>は十分な能力を持つのが普通です。</li><li><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> <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-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> <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-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> <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></ul></figure></comment-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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor> では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に対する操作の単位を<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規則<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">rule</rt></rubyb>と呼んでいます。
最低限の規則を<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="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;46</anchor-internal></src>。</p></section><section><h1>規則の適用</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</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> <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="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;51</anchor-internal></src>。</p><figure class="steps"><ol><li>幅写像規則</li><li>追加写像規則</li><li>大文字・小文字写像規則</li><li>正規化規則</li><li>方向性規則</li><li>挙動的規則</li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</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>は (<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="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</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>は<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="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;60</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;63</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;66</anchor-internal></src>。 これは <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal> の規定と矛盾しています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</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:">UTF-8</anchor> に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>することになっていて <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;60</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;63</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;66</anchor-internal></src>、
その後の処理は<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="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</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>から更に除外する<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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;46</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル</anchor>の追加制限 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;57</anchor-internal>) やこの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>の制限 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;50</anchor-internal>)
は挙動的規則の適用後に更に検査するものと思われます。</comment-p><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:">PRECIS</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>。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><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> 例えば<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></example></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> <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">string class</rt></rubyb></dfn> <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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal>) で定めることになります。</p><section><h1>挙動的規則</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb>挙動的規則<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">behavioral rule</rt></rubyb></anchor></dfn>は、
次の4つを定めるものです <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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。</p><figure class="list"><dl><dt><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>妥当</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">valid</rt></rubyb></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>。</dd><dt><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>文脈的規則必須</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">contextual rule required</rt></rubyb></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文脈的規則</anchor> (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CONTEXTJ</anchor></code> / <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CONTEXTO</anchor></code>)
が満たされる時だけ認められると扱われる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>。</dd><dt><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>禁止</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">disallowed</rt></rubyb></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>。</dd><dt><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>未割当</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">unassigned</rt></rubyb></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:">Unicode</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>の挙動。</dd></dl></figure></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> 次の2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列クラス</anchor>があります。</p><figure class="table col"><dl><dt>name</dt><dd>名前</dd><dt>cp</dt><dd>割当済み<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>の挙動</dd><dt>unassigned</dt><dd>未割当の扱い</dd><dt>desc</dt><dd>説明</dd><dt>context</dt><dd>利用される場面</dd></dl><dl><dt>name</dt><dd><dfn><code>IdentifierClass</code></dfn></dd><dt>desc</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:">venue</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>上の<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:">letter</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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src></dd><dt>cp</dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">導出特性値</anchor>によります
(<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ID_DIS</anchor></code> は「禁止」として扱います)。</dd><dt>unassigned</dt><dd>「禁止」として扱います。 <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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src></dd><dt>context</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者名 (PRECIS)</anchor></dd></dl><dl><dt>name</dt><dd><dfn><code>FreeformClass</code></dfn></dd><dt>desc</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>向けの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ニックネーム</anchor>のような表示要素など、
自由形の文字列に使う、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">letter</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>の列です。
ほとんどどんな <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字</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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src></dd><dt>cp</dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">導出特性値</anchor>によります
(<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FREE_PVAL</anchor></code> は「妥当」として扱います)。</dd><dt>unassigned</dt><dd>「禁止」として扱います。 <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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src></dd><dt>context</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合言葉 (PRECIS)</anchor></dd></dl></figure><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7564</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の議論の結果としてこの2つの<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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。</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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA登録簿</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="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src> も用意されています <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="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;53</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="144" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[144]</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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;141</anchor-internal>、<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="140" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;140</anchor-internal> にあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 形式のデータファイルが <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="142" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;142</anchor-internal> (説明が <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal>) にあります。</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="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[141]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2008</anchor> - <cite xml:lang="en">Character sets</cite> (<time>2016-01-03 22:21:31 +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://chars.suikawiki.org/set#sets-rfc5892">https://chars.suikawiki.org/set#sets-rfc5892</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="140" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[140]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor> - <cite xml:lang="en">Character sets</cite> (<time>2016-01-03 22:21:54 +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://chars.suikawiki.org/set#sets-rfc7564">https://chars.suikawiki.org/set#sets-rfc7564</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="142" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[142]</anchor-end> (<time>2016-01-03 22:17:56 +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://raw.githubusercontent.com/manakai/data-chars/master/data/sets.json">https://raw.githubusercontent.com/manakai/data-chars/master/data/sets.json</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[143]</anchor-end> <cite xml:lang="en">data-chars/sets.txt at master · manakai/data-chars</cite> (<time>2016-01-03 22:18: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="https://github.com/manakai/data-chars/blob/master/doc/sets.txt">https://github.com/manakai/data-chars/blob/master/doc/sets.txt</anchor-external></li></ul></refs></section></section><section><h1>プロファイル</h1><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:">PRECIS文字列クラス</anchor>の<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">profile</rt></rubyb></dfn>は、
<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="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</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> (あれば)、
<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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</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>を更に制限することができます <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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。 </p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</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>
<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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><section><h1>写像規則</h1><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">幅写像規則<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">width mapping rule</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に対して<dfn>幅写像</dfn>を適用するかどうかと、
どのように<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>するかとを規定するものです。
普通は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Decomposition Type</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Wide</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Narrow</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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFKC</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFKD</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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFC</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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> 関連: <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="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">追加写像規則<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">additional mapping rule</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>中の区切り文字 (<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">@</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">:</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">/</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">+</anchor></code>,
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code> など) や特殊文字 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非ASCII</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">間隔</anchor> → <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0020</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>を行うかどうかを規定するものです <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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字・小文字写像規則<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">case mapping rule</rt></rubyb></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>するかを規定するものです。
<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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</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:">Unicode</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Default Case Folding</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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FreeformClass</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>に使う場合は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">titlecase</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:">小文字</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:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p></section><section><h1>正規化規則</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化規則<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">normalization rule</rt></rubyb></dfn>は、
適用する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFC</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFD</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFKC</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFKD</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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFC</anchor> を使う<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき</SHOULD>です <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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</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>の<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>に適用するのは好ましくないと考えられています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>正規化</anchor> </sw-see>
つまり <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor> は一般的な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>には適用できません。</p></section><section><h1>方向性規則</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">方向性規則<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">directionality rule</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RTL</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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidi</anchor> アルゴリズムの他には広く受け入れられ実装されている安全な表示の方法はないとして、
具体的な方向性の規則は定義していません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2008</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5893</anchor>)
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドメイン名</anchor>用の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bidi Rule</anchor>を定義しており、
必要ならば (新たに定義するのではなく) それを使うことを<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強く提案<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">strongly suggest</rt></rubyb>しています。
<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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src></p></section><section><h1>プロファイルの一覧</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> 次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル</anchor>が定義されています。</p><figure class="table col"><dl><dt>name</dt><dd>プロファイル名</dd><dt>width</dt><dd>幅写像規則</dd><dt>addmap</dt><dd>追加写像規則</dd><dt>case</dt><dd>大文字・小文字写像規則</dd><dt>norm</dt><dd>正規化規則</dd><dt>dir</dt><dd>方向性規則</dd><dt>behavior</dt><dd>挙動的規則</dd><dt>context</dt><dd>利用される場面</dd><dt>note</dt><dd>備考</dd></dl><dl><dt>name</dt><dd><dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UsernameCaseMapped</anchor></code></dfn> <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="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;60</anchor-internal></src></dd><dt>width</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>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">半角文字</anchor>に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UAX #11</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">分解写像</anchor>適用</dd><dt>addmap</dt><dd>なし</dd><dt>case</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:">Default Case Folding</anchor></dd><dt>norm</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:">NFC</anchor></dd><dt>dir</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:">RFC 5893</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bidi Rule</anchor></dd><dt>behavior</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>) <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IdentifierClass</anchor></code></dd><dt>context</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者名 (PRECIS)</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JID</anchor> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localpart</anchor></code></dd><dt>note</dt><dd><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;61</anchor-internal></dd></dl><dl><dt>name</dt><dd><dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UsernameCasePreserved</anchor></code></dfn> <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="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal></src></dd><dt>width</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>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">半角文字</anchor>に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UAX #11</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">分解写像</anchor>適用</dd><dt>addmap</dt><dd>なし</dd><dt>case</dt><dd>なし</dd><dt>norm</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:">NFC</anchor></dd><dt>dir</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:">RFC 5893</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bidi Rule</anchor></dd><dt>behavior</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>) <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IdentifierClass</anchor></code></dd><dt>context</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者名 (PRECIS)</anchor>、
<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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></dd><dt>note</dt><dd><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;61</anchor-internal></dd></dl><dl><dt>name</dt><dd><dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpaqueString</anchor></code></dfn> <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="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;63</anchor-internal></src></dd><dt>width</dt><dd>なし</dd><dt>addmap</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:">非ASCII間隔</anchor> → <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII間隔</anchor> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;70</anchor-internal>)</dd><dt>case</dt><dd>なし</dd><dt>norm</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:">NFC</anchor></dd><dt>dir</dt><dd>なし</dd><dt>behavior</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>) <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FreeformClass</anchor></code></dd><dt>context</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合言葉 (PRECIS)</anchor>、
<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> <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:">JID</anchor> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">resourcepart</anchor></code></dd><dt>note</dt><dd><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;61</anchor-internal></dd></dl><dl><dt>name</dt><dd><dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Nickname</anchor></code></dfn> <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="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;66</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;67</anchor-internal></src></dd><dt>width</dt><dd>なし</dd><dt>addmap</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:">非ASCII間隔</anchor> → <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII間隔</anchor> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;71</anchor-internal>)、
先頭と末尾の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII間隔</anchor>除去、
連続した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII間隔</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII間隔</anchor>1つに</dd><dt>case</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:">Default Case Folding</anchor></dd><dt>norm</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:">NFKC</anchor></dd><dt>dir</dt><dd>なし</dd><dt>behavior</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>) <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FreeformClass</anchor></code></dd></dl></figure><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="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <cite xml:lang="en">Character mapping &quot;rfc7613:non-ASCII-space&quot;</cite> (<time>2016-01-04 23:28:24 +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://chars.suikawiki.org/map/rfc7613%3Anon-ASCII-space">https://chars.suikawiki.org/map/rfc7613%3Anon-ASCII-space</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <cite xml:lang="en">Character mapping &quot;rfc7700:non-ASCII-space&quot;</cite> (<time>2016-01-04 23:29: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="https://chars.suikawiki.org/map/rfc7700%3Anon-ASCII-space">https://chars.suikawiki.org/map/rfc7700%3Anon-ASCII-space</anchor-external></li></ul></refs><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル</anchor>には、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA登録簿</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="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src> があります <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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;53</anchor-internal></src>。</p></section></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4790</anchor> と若干用途がかぶっているようですが、関係は特に規定されていません。</p></section><section><h1>歴史</h1><section><h1>Stringprep から PRECIS へ</h1><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:">IDNA2003</anchor> や、その他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">識別子</anchor>等を扱う <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</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 3454</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> によって
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</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:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> も参照。</comment-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:">Stringprep</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 3.2</anchor> に固定されその後改版できずに放置されているなど、
色々な問題を抱えていました。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2008</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> を放棄して独自路線に進みました。
(もっともその路線は市場には支持されず、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> を別の形で拡張した
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTS #46</anchor> が使われているわけですが...)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="145" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[145]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 6885</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル</anchor>とその問題点をまとめたものです。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor>
は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 3.2</anchor> に固定されているなど問題があり <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2008</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> を使わなくなりましたが、
新しいプロトコルは改版可能であるなど <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DNS</anchor> とは事情が異なるとして、それとは別の方法で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor>
を改良する必要があると指摘し、<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="144" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[144]</anchor-end> <cite xml:lang="en">RFC 6885 - Stringprep Revision and Problem Statement for the Preparation and Comparison of Internationalized Strings (PRECIS)</cite> (<time>2013-07-29 10:54:24 +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/rfc6885">http://tools.ietf.org/html/rfc6885</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="146" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[146]</anchor-end> これを踏まえて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> では「Preparation and Comparison of Internationalized Strings」を略して「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor>」
と称し、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> を改訂するべく <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS WG</anchor></dfn> を設置しました。</p></section><section><h1>PRECIS の開発</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[141]</anchor-end> <cite xml:lang="en">draft-ietf-precis-problem-statement-02 - Stringprep Revision Problem Statement</cite>
( (<time>2011-04-01 08:20:57 +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/search/draft-ietf-precis-problem-statement-02">http://tools.ietf.org/search/draft-ietf-precis-problem-statement-02</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="112" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[112]</anchor-end> <cite xml:lang="en">draft-ietf-precis-mappings-08 - Mapping characters for PRECIS classes</cite>
(<time>2014-12-30 20:53:58 +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://tools.ietf.org/html/draft-ietf-precis-mappings-08">https://tools.ietf.org/html/draft-ietf-precis-mappings-08</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="147" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[147]</anchor-end> <cite xml:lang="en">draft-ietf-precis-nickname-16 - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Nicknames</cite>
(<time>2015-03-03 17:06:31 +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://tools.ietf.org/html/draft-ietf-precis-nickname-16">https://tools.ietf.org/html/draft-ietf-precis-nickname-16</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="148" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[148]</anchor-end> <cite xml:lang="en">draft-ietf-precis-saslprepbis-14 - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords</cite>
(<time>2015-03-03 17:19:07 +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://tools.ietf.org/html/draft-ietf-precis-saslprepbis-14">https://tools.ietf.org/html/draft-ietf-precis-saslprepbis-14</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="149" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[149]</anchor-end> <cite xml:lang="en">draft-ietf-precis-framework-23 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols</cite>
(<time>2015-02-24 08:26:08 +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://tools.ietf.org/html/draft-ietf-precis-framework-23">https://tools.ietf.org/html/draft-ietf-precis-framework-23</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="150" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[150]</anchor-end> <cite xml:lang="ja">JPRSの米谷嘉朗がIETF PRECISワーキンググループの共同議長に就任 / 株式会社日本レジストリサービス(JPRS)</cite>
(<time>2015-03-22 21:12: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://jprs.co.jp/press/2010/100615.html">http://jprs.co.jp/press/2010/100615.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="151" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[151]</anchor-end> <cite xml:lang="en">stpeter/precis-framework</cite>
(<time>2015-03-22 21:14:12 +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/stpeter/precis-framework">https://github.com/stpeter/precis-framework</anchor-external></p></section><section><h1>RFC 7564</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> 2015年に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor> 全体を規定する <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7564</anchor></dfn>
が出版され、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3454</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="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:">Stringprep</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>」
とする形を採っていました。</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:">PRECIS</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>ごとに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル</anchor>をどんどん増やしていくのは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">驚き最小の原則</anchor>違反であるから<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非推奨<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">discouraged</rt></rubyb>であり<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">禁止<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">must not</rt></rubyb>する
<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>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;46</anchor-internal></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>の表を共用できる <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>もいろいろな文脈でどの<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> ともされています。</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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</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>によって定義する形を採っており、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</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> とされています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 3.2</anchor> 固定とされていました。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><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> 決定方法が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規定</anchor>とされている一方で、最新の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
に適用した結果が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA登録簿</anchor>に登録される <src><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>を参照。</comment-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> <cite xml:lang="en">stpeter/PrecisMaker</cite>
(<time>2016-01-02 23:12:57 +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/stpeter/PrecisMaker">https://github.com/stpeter/PrecisMaker</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7613</anchor></dfn> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者名 (PRECIS)</anchor> として
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UsernameCasePreserved</anchor></code> と <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UsernameCaseMapped</anchor></code>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合言葉 (PRECIS)</anchor> として <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpaqueString</anchor></code>
の3つの<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:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> これらは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SASLprep</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">廃止</anchor>しその代替として定義されたものですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SASLprep</anchor> とこれらの<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="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7700</anchor></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>として
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Nickname</anchor></code> を定義しました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <cite xml:lang="ja">施行 - Wikipedia</cite>
(<time>2016-01-09 19:28: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://ja.wikipedia.org/wiki/%E6%96%BD%E8%A1%8C">https://ja.wikipedia.org/wiki/%E6%96%BD%E8%A1%8C</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <cite xml:lang="en">RFC 7790 - Mapping Characters for Classes of the Preparation, Enforcement, and Comparison of Internationalized Strings (PRECIS)</cite>
(<time>2016-03-31 03:20:06 +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://tools.ietf.org/html/rfc7790">https://tools.ietf.org/html/rfc7790</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> <cite xml:lang="en">Add document for rfc7700 casemapping by DanielOaks · Pull Request #272 · ircv3/ircv3-specifications</cite>
( (<time>2016-12-13 22:50:56 +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/ircv3/ircv3-specifications/pull/272">https://github.com/ircv3/ircv3-specifications/pull/272</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <cite xml:lang="en">RFC 8146 - Adding Support for Salted Password Databases to EAP-pwd</cite>
(<time>2017-04-22 11:18:27 +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://tools.ietf.org/html/rfc8146">https://tools.ietf.org/html/rfc8146</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <cite xml:lang="en">RFC 8120 - Mutual Authentication Protocol for HTTP</cite>
(<time>2017-04-20 12:04:06 +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://tools.ietf.org/html/rfc8120#section-9">https://tools.ietf.org/html/rfc8120#section-9</anchor-external></p></section></section></body></html>