* IRI の相対参照解決 [3] [[RIF]] は [[RFC 3986]] の[[算法]]を [[IRI]] に直接適用すると規定しています。 ;; [CITE[RIF Datatypes and Built-Ins 1.0]] ([TIME[2010-06-22 23:52:50 +09:00]] 版) [4] [[SSML 1.1]] の「[[URI]]」は [CODE(XML)@en[[[anyURI]]]] ですが、 [[RFC 3986]] の[[算法]]を (特に断り書きなしに) 適用すると規定しています。 ;;[CITE@en[Speech Synthesis Markup Language (SSML) Version 1.1]] ([TIME[2010-09-08 00:26:19 +09:00]] 版) * Open Packaging の相対参照解決 [2] [[Open Packaging]] は [[Unicode文字列]]を[[部分名]]に[[解決]]する方法を規定しています ([[ECMA 376]] 第2部附属書A)。[[部分名]]とは、 [[pack URI]] の [[path]] 部分のことです。 この[[解決]]は [[Unicode文字列]] → [[IRI]] → [[URI]] → [[部分名]]の3段階に分かれています。 最初の2つの段階については「[[IRI]]」の項を参照してください。 最後の [[URI]] → [[部分名]]の段階では、[[相対参照]]の[[解決]]が行われます (同、 A.3)。 この[[解決]]の方法は [[RFC 3986]] の[[相対参照]]の[[解決]]よりも拡張されたものになっています。 = [CODE(char)[[['''[''']]]] と [CODE(char)[[[''']''']]]] を[[百分率符号化]]します = [CODE(char)[[[%]]]] の後に[[十六進数]]2桁が続かない場合、[[百分率符号化]]します = [[非予約文字]] ([[RFC 3986]] のもの?) に対する[[百分率符号化]]を[[復号]]します = [CODE(char)[[[/]]]] と [CODE(char)[[[\]]]] の[[百分率符号化]]を[[復号]]します = [CODE(char)[[[\]]]] を [CODE(char)[[[/]]]] に変換します = [CODE(char)[[[.]]]] 以外の[[文字]]を含んだ [[segment]] それぞれについて、末尾に [CODE(char)[[[.]]]] があればすべて除去します = [CODE(char)[[[/]]]] の連続を1つの [CODE(char)[[[/]]]] に置き換えます = 末尾に1つ [CODE(char)[[[/]]]] があれば、除去します = 3つ[[以上]]の [CODE(char)[[[.]]]] から成る [[segment]] 全体を除去します = [[RFC 3986]] の方法で[[相対参照]]として[[解決]]し、得られた [[path]] の部分が[[部分名]]です * 素片識別子の扱い [1] 基底 [SAMP(URI)[http://foo.example/#bar]] で相対 URI 参照 [SAMP(URI)[?]] を解決すると [SAMP(URI)[http://foo.example/?]] になる実装と [SAMP(URI)[http://foo.example/?#bar]] になる実装がある。 [5] [CITE@EN[XQuery 3.0: An XML Query Language]] ( ([TIME[2014-04-08 08:26:21 +09:00]] 版)) [6] [CITE@EN[XML Path Language (XPath) 3.0]] ( ([TIME[2014-04-08 07:58:50 +09:00]] 版))