#?SuikaWiki/0.9 -[1] ''Another HTML-lint : Explanation'' 正しくない [[URI]] の例が幾つかあります。 [[#comment]] * RFC 2068 の定義 [2] [[RFC2068]] 3.2 で規定されています。 ただし、 [[HTTP]] で使うための [[URI]] の定義であって、一般の場面の URI としての定義ではないことに注意が必要です。 具体的には、本来 URI では使えないはずの [[national]] の文字が認められていたりします。 - http_URL = "http:" "//" host [ ":" port ] [ abs_path ] - host = -- = uri.[[host]] ;; = hostname / [[IPv4address]] - port = *DIGIT - relativeURI = net_path | abs_path | rel_path - net_path = "//" net_loc [ abs_path ] - abs_path = "/" rel_path - rel_path = [ path ] [ ";" params ] [ "?" query ] - path = fsegment *( "/" segment ) - fsegment = 1*pchar -- = 1*((OCTET - unsafe) / escaped) - segment = *pchar -- = *((OCTET - unsafe) / escaped) - params = param *( ";" param ) - param = *( pchar | "/" ) -- = *((OCTET - unsafe) / escaped) - scheme = 1*( ALPHA | DIGIT | "+" | "-" | "." ) - net_loc = *( pchar | ";" | "?" ) -- = *((OCTET - unsafe) / escaped) - query = *( uchar | reserved ) -- = *(([[OCTET]] - [[unsafe]]) / [[escaped]]) - fragment = *( uchar | reserved ) -- = *((OCTET - unsafe) / escaped) なんかこの構文破綻してる気がしますが。。。 例えば [CODE(ABNF)[segment = 2068.segment - "/"]] と定義しておかないと[[欲張り]]過ぎるんじゃ?