Re: HTML Pro questions

Peter Flynn (pflynn@curia.ucc.ie)
06 Nov 1996 08:54:53 +0000 (GMT)


Date: 06 Nov 1996 08:54:53 +0000 (GMT)
From: Peter Flynn <pflynn@curia.ucc.ie>
Subject: Re: HTML Pro questions
To: www-html@w3.org
Message-id: <199611060854.IAA17846@curia.ucc.ie>

Joe writes:

> This content model prohibits intermingled METAs and LINKs
> (<META><LINK> <META><LINK>...) -- the AND group requires that
> all the META elements appear together, all the LINK elements
> appear together, etc.

That's quite correct: I saw no need for them to be randomized.

> There are a number of conventions for metadata in HTML
> (such as the Dublin Core scheme) that use intermingled
> METAs and LINKs, so this is a fairly important issue.

I wasn't aware of this -- thanks for pointing it out. I thought DC
deprecated LINK, though. Easily fixed but I don't see the advantage in
allowing the title to be in among the repeatable elements, although I
can see the argument for the interspersability of the non-repeatable
elements if you want the average neophyte user to be able to add
anything anywhere (or have I missed something else?). Personally I'd
prefer to maintain TITLE in pole position (ideally followed by BASE,
then %head.any; and then the rest, but I'm not too concerned about
that sequence).

> The best solution I was able to come up with was:
> 
> 	<!ENTITY % head.any 	-- repeatable HEAD elements --
> 		"(META | LINK | SCRIPT | STYLE | RANGE)*" >
> 
> 	<!ELEMENT HEAD - -
> 	    ( %head.any; ,
> 		( (TITLE, %head.any;)
> 		& (BASE, %head.any;) ?
> 		& (ISINDEX, %head.any;) ?
> 		& (NEXTID, %head.any;) ?
> 		& (BGSOUND, %head.any;) ? ) ) >
> 
> 
> (This might be a bitch to specify using Near&Far though :-)

No, just get it to Import it from the ASCII DTD. I run the thing through
N&F to validate and let me view the structure, but the master copy is
maintained in ASCII :-)

> Another solution, which is what Dave Raggett used for
> HTML 3.2, is to make the "%head.any;" elements an
> inclusion exception on the HEAD element and an
> exclusion exception on TITLE, SCRIPT, and other
> non-empty subelements:
> 
> 	<!ENTITY % head.any 	-- same as above but no '*' --
> 		"(META | LINK | SCRIPT | STYLE | RANGE)" >
> 
> 	<!ELEMENT HEAD - O (TITLE & BASE & ...) +%head.any; >
> 	<!ELEMENT TITLE - - (#PCDATA) -%head.any; >
> 	<!-- etc. -->

I'd prefer to exercise Occam's Razor at this point :-)

> The exclusions are important; otherwise you can have
> 
>     <HEAD>
>     <TITLE>blah <SCRIPT>...</SCRIPT> blah </TITLE>
>     </HEAD>

I can think of at least two browser makers who would love this.

///Peter