- From: Hugh Greene <hughg@owl.co.uk>
- Date: Fri, 02 Mar 2001 17:28:49 +0000
- To: www-html-editor@w3c.org
- Message-Id: <4.3.2.7.0.20010227150633.0224cbe0@pophost.owl.co.uk>
[Note: I sent two messages to a different email address <w3c-html-editor@w3c.org> by mistake. One was Date: Tue, 06 Feb 2001 19:49:28 +0000 Subject: Erratum in xhtml-modularization-20001020? and the other Date: Fri, 09 Feb 2001 16:25:31 +0000 Subject: (More) Content Model clashes in XHTML Modularization They haven't appeared on the www-html-editor archive, unsurprisingly, but I received no notification that they'd been sent to an invalid address. Assuming it's not some fault in the rest of the email ether, may I suggest that you send an explicit "unknown user" message in these cases (or, if there *is* a "w3c-html-editor", have a less confusing pair of email recipients ;-)?] As context, the problems and errata I'm listing here were uncovered while trying to check an instantiation of XHTML modules to produce an XHTML Host Language Conforming DTD. Most issues I found regard the content models of elements and differences in these between the abstract modules and the DTD module implementations. These are described in the attached HTML document -- I hope it's clear. Below are some other miscellaneous issues. * General: undefined entities ** Entities for which lack of a definition is possibly an erratum Both "%Anchor.class;" and "%Table.class;" are undefined in the DTD implementations, although they are referenced. Are they intended to be left for instantiations to define? If not, presumably they should be "| %a.qname;" and "| %table.qname;" respectively, as in the example in E.4.4 "Creating a new DTD" and in F.3.4.1 "Basic Forms" respectively. I'm not sure where they should be defined, though. The Legacy DTD module implementation references "%Color.datatype;" but it doesn't seem to be defined anywhere, even in an example. I'm pretty sure this should be defined, in F.2.3. "XHTML Datatypes". I wonder whether "%XHTML.profile;" should have a default definition of the empty string. ** Entities intended to be undefined There seems to be a number of irresolvable inconsistencies between the content models used in the Module Implementations, and those described in the Abstract Modules. Irresolvable, that is, in the sense that, for the parameter entities which are purposely left undefined in the implementations, there is no set of definitions for these entities which will make all the content models match those in the Abstract Modules. Of course you could, and I hope you will, resolve them as you update the spec ;-) Also in attempting to check the instantiation I was looking at, I found that it would have been helpful to have a list of which undefined parameter entities are referenced by each module implementation (i.e., what the "parameters" of the module are). Where there are parameter entities which are defined but may be expected to be overridden (e.g., the "%*.module;" entities), it would also be helpful to list these, as they are effectively "parameters with default values". (Some are not intended to be overridden, of course, e.g., the "%*.datatype;" entities.) In fact F.3.3.3 "Bi-directional Text" does this, with a "DEPENDENCIES:" section in an initial comment; but I didn't notice it done anywhere else. * General: other confusions for implementors It's confusing that "%BlkPhras.class;" (which implementators have to define in a content model module) should *not* be defined to include all the elements of the "Block Phrasal" Support Module; in particular, it should exclude the heading elements. Possible ways to lessen this confusion include (a) explaining this restriction; (b) changing the entity name to something more suggestive of the "right answer", e.g., "%BlkPhrasNoHeading.class;"; or (c) providing a definition for this (and some other entities) in a Support Module prepared for use by "any XHTML Family Conforming Document Type" (which must include all the elements covered by this entity). A number of "%*.class;" entities are defined to begin with "| " while others aren't. It would be nice if these were consistent, to make it easy to compose them without having to check their definitions. * 5.8 "Client-side Image Map Module" The "Content Model" column for "input&" should probably have a comment similar to that for "object&", i.e., "Note: Only when the Forms or Basic Forms module is selected.". Note also that the similar note in 5.9 "Server-side Image Map Module" for the "input&" attribute is put in a separate "Notes" column. For textual consistency, it might be better to put it as a "Note: ..." in the "Content Model" column. * 5.10 "Object Module" The object element is not added to the content model of the head element, unlike HTML 4.01 and XHTML 1.0. * 5.22 "Legacy Module" There are a number of "new" elements described but no text saying to which content models they are added, hence they can't be used. Quite an effective way of deprecating them but I'm assuming this is a mistake ;-) * D.1 "Parameter Entity Naming" This section mentions (for ".class" and ".mix") the concept of "elements of the same class" but doesn't define what constitutes such a "class". This seems to be reflected in the confusion which appears in the use of these (or at least, my understanding thereof ;-) in the Module Implementations. I feel as if this concept and the corresponding parameter entity name categories need to be removed or re-thought; OTOH, I'm not offering a solution for how to do that ;-) * F.2.5 "XHTML Qualified Names" vs. F.2.6 "Qualified Names" These sections seem to be almost the same -- surely there should be only one of these. Also, they define several "%*.qname;" entities for the Ruby elements, but there's no abstract module or DTD module implementation for this module, and they're not referenced anywhere. Similarly "%alt.qname;" is unreferenced, though it's commented as being provisionally for XHTML. * F.3.4 "Forms" The definition of "BlkNoForm.mix" in F.3.4.1 "Basic Forms" uses "| %table.qname;" where that in F.3.4.2 "Basic Forms" uses "%Table.class". Presumably both should be the same text. The content model for "form" in the Basic Forms implementation doesn't mention "%Anchor.class;" or "%InlSpecial.class;", whereas it presumably should, since the full Forms implementation does. * XHTML 1.1 The content model DTD module (xhtml11-model-1.mod) supplied with the XHTML 1.1 WD of 2000/01/05 - puts "| table | form | fieldset" into %Block.extra;, which seems broken as it puts "form | fieldset" into %BlkNoForm.mix; - puts the Formctrl content model into %Inline.extra;. which seems broken as it puts "label" into "%label.content;" and "Formctrl" into "%button.content;". I hope all this is useful, Hugh Greene Panasonic OWL
Attachments
- text/html attachment: content-model-clashes_w3c-html-submit_r2.html
Received on Friday, 2 March 2001 12:38:26 UTC