Subject: RE: reframing the Empty IA5 string discussion

From: "Ramsay, Ron" <[email-masked]>
Date: Thu, 11 Nov 2004 16:38:30 +1100

But, for example, does caseIgnoreMatch say that "    " and "" are equal? I would have thought that "    " and " " are equal and that neither equals "".

If this were the case, I would expect the next in your sequence of caseIgnoreIA5Match lines would be
     caseIgnoreIA5Match says "   f"   and " " are equal.

Ron

-----Original Message-----
From: [email-masked]
[mailto:[email-masked]]On Behalf Of Steven Legg
Sent: Thursday, 11 November 2004 16:21
To: Kurt D. Zeilenga
Cc: [email-masked]
Subject: Re: reframing the Empty IA5 string discussion

Kurt,

Kurt D. Zeilenga wrote:
> I see that there are few reasonable options here:
> 1) IA5 strings precludes zero-length values
> 2) IA5 strings allows zero-length values
>    2A) a zero-length values only matches a zero-length value
>    2B) a zero-length value matches " " (and all values
>        equivalent to " ").
> 
> I prefer 1 over 2A over 2B (see prior posts for why).

There are two separate questions here. Whether or not the IA5 String syntax
is restricted to preclude zero-length values (I don't care either way) there
is still the potential for zero-length IA5String values to be compared by
caseIgnoreIA5Match through component matching. 2A versus 2B still has to be
addressed. On that score I prefer 2B as it makes more sense when taking the
limit.

     caseIgnoreIA5Match says "   foo" and "foo" are equal
     caseIgnoreIA5Match says "   fo"  and "fo" are equal
     caseIgnoreIA5Match says "   f"   and "f" are equal
                     2B says "   "    and "" are equal
                     2A says they're not - that seems odd to me!

Regards,
Steven

> 
> (Regardless of the choice LDAPprep can and should be designed
> to be idempotent.)
> 
>

---

From: Steven Legg <[email-masked]>
Date: Thu, 11 Nov 2004 17:32:13 +1100

Ron,

Ramsay, Ron wrote:
> But, for example, does caseIgnoreMatch say that "    " and "" are equal?

I would say yes. Both strings are empty of significant characters.

 > I would
 > have thought that "    " and " " are equal and that neither equals "".

I would say that "    " and " " and "" are all equal as they are all
empty of significant characters.

>      caseIgnoreIA5Match says "   f"   and " " are equal.

Each step removes the last character from each of two strings that match
in the previous step.

Regards,
Steven