Error in xhtml-qname-1.mod

There could be a quite serious bug in the xhtml-qname-1.mod file 
(http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-qname-1.mod). 
Indeed, not only is the comment at line 107 wrong (as
already noted in this mailing list), but also the entity 
XHTML.xmlns.attrib can be broken:

!-- Declare a parameter entity %NS.decl.attrib; containing all
      XML namespace declaration attributes used by XHTML, including
      a default xmlns attribute when prefixing is inactive.
-->
<![%XHTML.prefixed;[
<!ENTITY % XHTML.xmlns.attrib
      "%NS.decl.attrib;
       %XLINK.xmlns.attrib;"
 >
]]>
<!ENTITY % XHTML.xmlns.attrib
       "xmlns        %URI.datatype;           #FIXED '%XHTML.xmlns;'
       %XLINK.xmlns.attrib;"
 >

The comment refers to another piece of code. Moreover, when 
XHTML.prefixed is
set to IGNORE, the XHTML.xmlns.attrib definition doesn't include, as it 
should, the NS.decl.attrib entity.
For example, a XML file like

<!DOCTYPE html
   PUBLIC "-//AuthorName/DTD XHTML MyType 1.0//EN"
   "xhtml-mytype.dtd"
   [
     <!ENTITY % MyType.prefixed "INCLUDE">
     <!ENTITY % MyType.prefix     "mt">
   ]
 >

<html
  xmlns="http://www.w3.org/1999/xhtml"
  xmlns:mt="http://www.somewhere.org/xmlns/mytype" >
</html>

can't be correctly validated because XHTML.prefixed=IGNORE _but_ 
MyType.prefixed=INCLUDE.
The latest version of Xerces complains that the xmlns:mt attribute is 
not defined for the <html>
element.
Indeed the XHTML.xmlns.attrib doesn't nclude the necessary declaration 
of the
xmlns:mt attribute. The most easy solution to this problem is to change 
the preceding piece
of code with something like

<![%XHTML.prefixed;[
<!ENTITY % XHTML.xmlns.attrib
      "%NS.decl.attrib;
       %XLINK.xmlns.attrib;"
 >
]]>
<!ENTITY % XHTML.xmlns.attrib
       "xmlns        %URI.datatype;           #FIXED '%XHTML.xmlns;'
       %NS.decl.attrib;
       %XLINK.xmlns.attrib;"
 >

Is this correct or I'm misunderstanding something?

Received on Wednesday, 14 May 2003 04:52:30 UTC