

Re: IDs - make them case sensitive

From: <lee@sq.com>
Date: Fri, 27 Jun 97 23:48:44 EDT
Message-Id: <9706280348.AA06532@sqrex.sq.com>
To: w3c-sgml-wg@w3.org
Rick Jelliffe <ricko@allette.com.au> wrote:
>> TIM BRAY: Why, historically, was the value of an ID restricted to
> Name?
> Because people use the Reference Concrete Syntax.  

Er, no, you are answering the wrong question, I think.

My guess for Tim and Debbie would be this:

Recall that the writers of the SGML standard actually thought that
NAMELEN would improve implementations...  SGML was written in a culture
of what now seem to be very small computers, and placing arbitrary limits
on things reduced memory requirements.

An ID attribute is a NAME, and hence can only contain NAME characters.
In other words, SGML conflates the concepts of uniqueness and data type.

One can imagine a language (to borrow terminology) in which one could write:
    <!AttList Boy
	SocialSecurityID NAME (#REQUIRED, NAMESPACE SocialSecurityID)
to mean that all the boys have to have distinct SocialSecurityIDs, and that
these must be unique on all elements bearing attributes so named, and
that boys' names must also be unique, but don't conflict with NAME attributes
on other elements.

Obviously if you can check that NAMEs are unique, you can check that other
strings are unique.

Case folding and the baroque SGML type system are parts of a sad legacy
that we must retain, I suspect.


Liam Quin                   | lq-text freely available Unix text retrieval
Unemployed SGML consultant  | FAQs: Metafont fonts, OPEN LOOK UI, OpenWindows
liamquin@interlog.com       | xfonttool (Unix xfontsel in XView)
+1 416 594 9646 (home)      | the barefoot programmer
Received on Friday, 27 June 1997 23:48:48 EDT
