*BNF ;; を元にした。 -p3p-header = "P3P:" SP p3p-header-field *("," p3p-header-field) -p3p-header-field = policy-ref-field / compact-policy-field / extension-field -policy-ref-field = "policyref=" <"> URI-reference <"> -extension-field = token ["=" (http-token | quoted-string) ] ;; policy-ref-field は、 P3P 方針ファイルの URI で、相対 URI の場合は当該頭領域のある資源の URI からの参照。 -compact-policy-field = "CP=" <"> compact-policy <"> -compact-policy = compact-token *(SP compact-token) compact-token = compact-access / compact-disputes / compact-remedies / compact-non-identifiable / compact-purpose / compact-recipient / compact-retention / compact-categories / compact-test ;; draft-w3c-p3p-header-00 のより厳密な定義 compact-policy = compact-access [SP compact-disputes] [*(SP compact-remedies)] [SP compact-non-identifiable] [1*(SP compact-purpose)] [1*(SP compact-recipient)] 1*(SP compact-retention) [*(SP compact-category)] [compact-test] ;; 一つ以上の compact-policy があれば、最初の以外は無視 し'''なければならない'''。 ;; 値は大文字・小文字を区別する。 compact-access = 'NOI' ; for / 'ALL' ; for / 'CAO' ; for / 'IDC' ; for / 'OTI' ; for / 'NON' ; for compact-disputes = 'DSP' ; there are some DISPUTES compact-remedies = 'COR' ; for / 'MON' ; for / 'LAW' ; for compact-non-identifiable = "NID" ; for compact-purpose = 'CUR' / 'ADM' [creq] / "DEV" [creq] / "TAI" [creq] / "PSA" [creq] / "PSD" [creq] / "IVA" [creq] / "IVD" [creq] / "CON" [creq] / "HIS" [creq] / "TEL" [creq] / "OTP" [creq] creq = "a" ;"always" / "i" ;"opt-in" / "o" ;"opt-out" compact-recipient = "OUR" / "DEL" [creq] / "SAM" [creq] / "UNR" [creq] / "PUB" [creq] / "OTR" [creq] compact-retention = "NOR" / "STP" / "LEG" / "BUS" / "IND" compact-categories = "PHY" / "ONL" / "UNI" / "PUR" / "FIN" / "COM" / "NAV" / "INT" / "DEM" / "CNT" / "STA" / "POL" / "HEA" / "PRE" / "LOC" / "GOV" / "OTC" compact-test = "TST" ; for *例 -P3P: policyref="http://catalog.example.com/P3P/PolicyReferences.xml" *感想など なんで読点区切りなんだよ... 普通セミコロンでしょ? それから、 extension-field の定義が token てことは、 今後の拡張はパラメーター型じゃないってこと? と思ったら、 I-D の方はパラメーター型を認めている。 それから、この領域に限らず言えることだけど、 SP とか FWS が隙間に 入るのか入らないのか不明。この領域だと特に、 SP を入れる場所が 指定されているから、「,」の前後には入れてはいけないのか?? は draft 01 だけど August 2, 2000 で、 draft 00 August 14, 2001 の方がなぜか新しい。 01案での定義は 「P3P: "PolicyRef:" URI [; ]」 で、 は未定義。 URI は RFC 2396 で定義されているけど、 2396 BNF に URI というのは無い。 URI には「;」も入り得るけど、 どう見分けるつもりだったんだか。 この名残か、 00案に 「P3P: PolicyRef: http://catalog.example.com/P3P/PolicyReferences.xml」 という例が載っている。00案や PR-P3P 的には不適合。 RFC 2274 (HTTP 頭領域の名前に名前空間を導入する奴。) の応用らしい けど、そんなの嘘だ。 *See also - - (2000年8月2日) - (2001年8月14日) - (2002年1月28日) -[[RFC2274]] --[[*-*:頭領域]] -[[RFC822と仲間達の頭領域名]] -[[HTTP]] --[[HTTP/1.1]] -[[HTML]] -[[P3P]] - 2002-10-14 (Mon) 07:41:39 ''[[名無しさん]]'' : RFC 2274 の応用というのはたぶん、[[名前空間]]の方ではなくて、 Opt: 欄とか C-Man: 欄とかを使う、ってことじゃないでしょうか。 - [1] 読点区切りってことは複数置けるんだろうか?