[Date Prev][Date Next] [Chronological] [Thread] [Top]

separator escapement in draft-ietf-ldapbis-syntaxes-00.txt



The text of the paragraph from 4.3 has been moved to Section 2.1 (a good thing I think), but it has been reworded from:

   In encodings where an arbitrary string, not a Distinguished Name, is
   used as part of a larger production, and other than as part of a
   Distinguished Name, a backslash quoting mechanism is used to escape
   the following separator symbol character (such as "'", "$" or "#") if
   it should occur in that string.  The backslash is followed by a pair
   of hexadecimal digits representing the next character.  A backslash
   itself in the string which forms part of a larger syntax is always
   transmitted as '\5C' or '\5c'. An example is given in section 6.27.

to:

   In cases where an arbitrary string, not a Distinguished Name or part 
   of one, is used in a value of an attribute, a backslash quoting 
   mechanism is used to escape the following separator symbol character 
   (such as "'", "$" or "#") if it should occur in that string.  The 
   backslash is followed by a pair of hexadecimal digits representing 
   the next character.  A backslash itself in the string which forms 
   part of a larger syntax is always represented as '\5C' or '\5c'.  An 
   example is given in section ?? postalAddress attribute.

Most noteably, the wording "as part of a larger production" has changed to "in a value of an attriubte". This adds a ambiguity to an already ambigous statement. As I understand it, this paragraph is applied to multi-part syntaxes, i.e. those that consist of multiple values, separated by some kind of separator character. This knowlege must be inferred to a small degree in RFC 2252,  because the terms "arbitrary", "larger production", and "larger syntax" aren't really defined. Now "larger production" is gone, which could cause implementors to simply apply this rule to *all* string-valued syntaxes.

I also infer from the original (and after carefull application of logic, the latter) that one only escapes instances of a _following_ separator character in strings. This means in a syntax like:
dstring '#' dstring
one must escape instances of '#' in the first dstring, but not the second. Is this correct? If so, I wish it was more explicit.
Then when talking about escaping the \ character, it appears that it is *always* escaped in multi-part syntaxes which means it would be escaped in both dstrings in the syntax above. I'm not sure what that's all about, since we only escape separator char's when the string is followed by a separator char--or am I reading it wrong?

Jim