Re: Odd case sensitive rules regarding <A name="abc">

Chris Maden (crism@ora.com)
Wed, 18 Feb 1998 10:17:19 -0500


Date: Wed, 18 Feb 1998 10:17:19 -0500
Message-Id: <199802181517.KAA01597@geode.ora.com>
From: Chris Maden <crism@ora.com>
To: www-html@w3.org
In-reply-to: <000401bd3bee$0f40c480$cf20268a@hpxu> (message from Ian Hickson
Subject: Re: Odd case sensitive rules regarding <A name="abc">

[Ian Hickson]
> From the HTML4 spec: [1]
> 
> > Section 12.2.1  Syntax of anchor names
> > An anchor name is the value of either the name or id attribute
> > when used in the context of anchors. Anchor names must observe the
> > following rules:
> > * Uniqueness: Anchor names must be unique within a document.
> >   Anchor names that differ only in case may not appear in the same
> >   document
> > * String matching: Comparisons between fragment identifiers and
> >   anchor names must be done by exact (case-sensitive) match.
> 
> So the following code is illegal:
> 
> ----------------
> <P ID=ONE>...
> <P ID=one>...
> <P> <A HREF="ONE">Link to first paragraph</A>
> <P> <A HREF="one">Link to second paragraph</A>
> ----------------

This code *must* be illegal by SGML rules.  IDs are case sensitive in
the same manner as element names; since HTML has decided that <p>
should equal <P>, id="one" must match id="ONE".

> Yet the following code should do nothing:
> ----------------
> <P ID=one>...
> <P> <A HREF="ONE">Link to the paragraph</A>
> ----------------
> 
> Why???

The above is not true for HREFs, since the HREF attribute is declared
as CDATA, which preserves case.[1]  However, the above *would* work in
a conforming SGML application, so the HTML spec really can't outlaw
it; an application shouldn't be able to tell the difference between <p
id="one"> and <p id="ONE">.

XML, BTW, is completely case-sensitive in all areas, so there's no
ambiguity or confusion like this.

-Chris

[1] Assuming for this discussion that you meant <A HREF="#ONE">.
-- 
<!NOTATION SGML.Geek PUBLIC "-//Anonymous//NOTATION SGML Geek//EN">
<!ENTITY crism PUBLIC "-//O'Reilly//NONSGML Christopher R. Maden//EN"
"<URL>http://www.oreilly.com/people/staff/crism/ <TEL>+1.617.499.7487
<USMAIL>90 Sherman Street, Cambridge, MA 02140 USA" NDATA SGML.Geek>