Internet Engineering Task Force (IETF)                        P. Kyzivat
Request for Comments: 7405                                 December 2014
Updates: 5234
Category: Standards Track
ISSN: 2070-1721


                 ABNF における大文字小文字を区別する文字列のサポート

概要

   本文書は、ABNF(Augmented Backus-
   Naur Form)の基本定義を拡張し、大文字小文字を区別する方法で
   照合される US-ASCII 文字列リテラルを指定する手段を含める。

本文書の位置付け

   これは Internet Standards Track 文書である。

   本文書は Internet Engineering Task Force
   (IETF) の成果物である。これは IETF コミュニティの合意を
   表すものである。本文書は公開レビューを受け、Internet
   Engineering Steering Group (IESG) により公開が承認されている。
   Internet Standards に関する詳細情報は RFC 5741 の Section 2 にある。

   本文書の現在の状態、正誤表、およびフィードバックの提供方法に
   ついての情報は、
   http://www.rfc-editor.org/info/rfc7405 で入手できる。

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.









Kyzivat                      Standards Track                    [Page 1]


RFC 7405          ABNF における大文字小文字を区別する文字列のサポート    December 2014


目次

   1.  はじめに  . . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  RFC 5234 への更新 . . . . . . . . . . . . . . . . . . . .   2
     2.1.  終端値 - リテラルテキスト文字列  . . . . . . . . . .   3
     2.2.  ABNF の ABNF 定義 - char-val  . . . . . . . . . . .   4
   3.  セキュリティに関する考慮事項 . . . . . . . . . . . . . . .   4
   4.  規範的参考文献  . . . . . . . . . . . . . . . . . . . . .   4
   著者の連絡先  . . . . . . . . . . . . . . . . . . . . . . . .   4

1.  はじめに

   ABNF(Augmented Backus-Naur Form)の基本定義は、US-
   ASCII 文字列リテラルをサポートしている。これらのリテラルの
   照合は、大文字小文字を区別しない方法で行われる。これは望ましい
   振る舞いであることが多いが、状況によっては、文字列リテラルの
   大文字小文字を区別する照合が必要になる。このような照合のための
   リテラルは、文字の数値表現を使用して指定しなければならず、
   書く場合にも読む場合にも不便で誤りやすい。

   本文書は ABNF を拡張し、2 つの異なる種類の US-ASCII
   文字列リテラルを持つようにする。一方の種類は大文字小文字を
   区別する照合を使用して照合され、もう一方は大文字小文字を
   区別しない照合を使用して照合される。これらの種類は、数値で
   使用される型接頭辞に類似した型接頭辞を使用して示される。
   接頭辞が使用されない場合は、大文字小文字を区別しない照合が
   使用される(これは従来の振る舞いと整合している)。

   本文書は、完全な ABNF 仕様 [RFC5234] に対する一連の変更として
   構成されている。

2.  RFC 5234 への更新

   本文書は [RFC5234] の 2 つの部分を変更する。2 つの変更は
   次のとおりである。

   o  [RFC5234] の Section 2.3 の後半(
      "ABNF permits the specification of literal text strings" で始まる部分)
      を Section 2.1 の内容で置き換える。

   o  [RFC5234] の Section 4 にある <char-val> 規則を、
      Section 2.2 の内容で置き換える。












Kyzivat                      Standards Track                    [Page 2]


RFC 7405          ABNF における大文字小文字を区別する文字列のサポート    December 2014


2.1.  終端値 - リテラルテキスト文字列

   ABNF は、引用符で囲まれたリテラルテキスト文字列を直接指定する
   ことを許可する。したがって:

         command     =  "command string"

   リテラルテキスト文字列は、表示可能文字を連結した集合として
   解釈される。

   注:

   これらの文字列の文字集合は US-ASCII である。

   ABNF のリテラルテキスト文字列は、大文字小文字を区別しても、
   区別しなくてもよい。リテラルテキスト文字列で使用される照合形式は、
   引用符付き文字列に対する接頭辞によって示される。次の接頭辞が
   許可される。

         %s          =  case-sensitive
         %i          =  case-insensitive

   ABNF の従来の実装と整合させるため、接頭辞がないことは、その
   文字列が大文字小文字を区別しないことを意味し、"%i" 接頭辞が
   あることと同等である。

   したがって:

         rulename = %i"aBc"

   および:

         rulename = "abc"

   はどちらも、"abc", "Abc", "aBc", "abC", "ABc", "aBC", "AbC",
   および "ABC" に一致する。

   対照的に:

         rulename = %s"aBc"

   は "aBc" のみに一致し、"abc", "Abc", "abC", "ABc",
   "aBC", "AbC", または "ABC" には一致しない。

   過去には、個々の文字の数値指定が、大文字小文字を区別する規則を
   定義するために使用されていた。






Kyzivat                      Standards Track                    [Page 3]


RFC 7405          ABNF における大文字小文字を区別する文字列のサポート    December 2014


   例:

         rulename    =  %d97 %d98 %d99

   または

         rulename    =  %x61.62.63

   は、小文字のみで構成される文字列 abc のみに一致する。接頭辞付きの
   リテラルテキスト文字列を使用することは、従来の方法に比べて
   可読性の面で明確な利点がある。

2.2.  ABNF の ABNF 定義 - char-val

         char-val       =  case-insensitive-string /
                           case-sensitive-string

         case-insensitive-string =
                           [ "%i" ] quoted-string

         case-sensitive-string =
                           "%s" quoted-string

         quoted-string  =  DQUOTE *(%x20-21 / %x23-7E) DQUOTE
                                ; quoted string of SP and VCHAR
                                ;  without DQUOTE

3.  セキュリティに関する考慮事項

   セキュリティは本文書には本当に無関係であると考えられる。

4.  規範的参考文献

   [RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234, January 2008,
              <http:/www.rfc-editor.org/info/rfc5234>.

著者の連絡先

   Paul Kyzivat
   Massachusetts
   United States

   EMail: pkyzivat@alum.mit.edu









Kyzivat                      Standards Track                    [Page 4]