HTML2_X.DTD

lee at sq.com lee at sq.com
Tue Jun 17 19:30:25 BST 1997


Richard Light <richard at light.demon.co.uk> wrote:

> 1) This is the relevant fragment for the first issue (the '&' content
> models have not been changed):
> 
> <!ELEMENT HEAD      (TITLE & ISINDEX? & BASE?)>
> <!-- +(META|LINK) exception removed -->

Well, I originally wrote the & content model for HTML 2.0.

We had to have a model that reflected the idea that you could have
* zero or one BASE
* zero or one ISINDEX
* exactly one TITLE
* any number of META elements interspersed in any order.

You could try
    META*,
    (
	(ISINDEX, META* TITLE) | (TITLE, META*, ISINDEX?)
    )
    META*

but this is ambiguous in SGML and requires lookahead, because if you get
a META after a TITLE, you don't know if there is goiong to be an ISINDEX
following.

The following might work:

    META*, (
	(ISINDEX, META* TITLE, META*) |
	(TITLE, META*, (ISINDEX, META*)?)
    )

but this doesn't allow for BASE or NEXTID.
I am not sure how to write a content model for HTML's HEAD in XML
that allows for all the things you might want to put in it.

The trouble is that & isn't a very good way to say "I want one of these
anywhere in this soup", because it can connect any two expressions of
arbitrary complexity.

The best thing to do is probably

    <!Element Head
	(TITLE|META|BASE|ISINDEX|NEXTID|....)*
    >

and require the application to do the additional checking.

Lee


xml-dev: A list for W3C XML Developers
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To unsubscribe, send to majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
List coordinator, Henry Rzepa (rzepa at ic.ac.uk)




More information about the Xml-dev mailing list