Hello I have observed something that seems like a bug in the 3 xhtml1-dtd's The definition for the head-element is declared as: <!ELEMENT head (%head.misc;, ((title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;))))> which expands to: <!ELEMENT head ((script|style|meta|link|object)*, ((title, (script|style|meta|link|object)*, (base, (script|style|meta|link|object)*)?) | (base, (script|style|meta|link|object)*, (title, (script|style|meta|link|object)*))))> The 1. blue part: (base, (script|style|meta|link|object)*)? I suppose the intended meaning for this part is: 0 or 1 base element followed by 0 or many %head.misc This implies that the number of elements found may be more than 1 (when base followed by one or more %head.misc exists) The trailing ? in (...)? should mean 1 or no elements (=optional) but must be interpreted as boolean (if 'base followed by %head.misc') in order to give the intended meaning Would it not be more correct to write this as: base?, (script|style|meta|link|object)* The 2. blue part: (title, (script|style|meta|link|object)*) title, (script|style|meta|link|object)* gives the same meaning I might have misunderstood something about the ?-quantifier in xhtml1-dtd's but has not found anything indicating that it is a boolean operator (?) -- Terje Rosenlund |