Hi Jake,
The issue with this processing instruction was reported to the W3C
several years ago. Perhaps one of these threads [1][2] contains something
you'll find helpful.
[1]
http://lists.w3.org/Archives/Public/www-html-editor/2001OctDec/1240.html
[2] http://lists.w3.org/Archives/Public/www-html/2002Feb/0086.html
On Sat, 9 Dec 2006, Jacob Kjome wrote:
At 03:59 AM 12/8/2006, you wrote:
/Jacob Kjome/:
But Xerces gives me the following error in parsing...
[xmlc]
D:\myclasses\Repository\Enhydra\tomcatXHTML\res\page\xhtmlbasic.xhtml:26:
Error: A colon is not allowed in the name 'IS10744:arch' when namespaces
are enabled.
[xmlc] Error: Parse of
"D:\myclasses\Repository\Enhydra\tomcatXHTML\res\page\xhtmlbasic.xhtml"
failed: org.xml.sax.SAXParseException: A colon is not allowed in the
name 'IS10744:arch' when namespaces are enabled.
Here's the part of the DTD that it appears to be bombing on (part of the
flat version of the DTD [1], referenced using a catalog)...
<?IS10744:arch xhtml
[...]
?>
The w3c wrote this, not me. Is Xerces correct in telling me that the
W3C made a mistake in the DTD or is Xerces getting something wrong?
As far as I know <http://www.w3.org/TR/xml-names/#dt-nwf>:
in a namespace-well-formed document:
* No entity names, processing instruction targets, or notation
names contain any colons.
Hmm... thanks for the pointer. But what has me puzzled is how they can
possibly have a recommendation out there with an invalid DTD? There's no
known errors according to their errata statement [1], and they've had about 6
years to find them. BTW, http://validator.w3.org/ says my document validates
just fine against the XHTML Basic 1.0 DTD. Are they not checking against
namespaces?
It's a bit worrisome because the xhtml-arch-1.mod [2] is a standard module
for XHTML modularization. So, any DTD extending the various XHTML modules
that include the arch module will fail under Xerces2. It's hard to believe
that the W3C members were boneheaded enough to write an invalid module that
every other extension of XHTML modularization depends on. The XHTML 1.1 DTD
[3] defines ignores the arch module...
<!ENTITY % xhtml-arch.module "IGNORE" >
<![%xhtml-arch.module;[
<!ENTITY % xhtml-arch.mod
PUBLIC "-//W3C//ELEMENTS XHTML Base Architecture 1.0//EN"
"xhtml-arch-1.mod" >
%xhtml-arch.mod;]]>
That's, apparently, the only reason why it succeeds under Xerces2.
So Xerces is correct. You could use no namespace processing if you
don't necessary need it.
Based upon your reference, it appears that Xerces2 is correct, but it's got
to be more nuanced than Xerces2 is right and the XHTML modularization spec
leaders are wrong. And turning off namespaces would entirely defeat the
purpose of XHTML modularization, no? There's got to be a better answer.
Anyone?
Jake
[1] http://www.w3.org/2000/12/REC-xhtml-basic-20001219-errata
[2]
http://validator.w3.org/sgml-lib/REC-xhtml-basic-20001219/xhtml-arch-1.mod
[3] http://validator.w3.org/sgml-lib/REC-xhtml11-20010531/xhtml11-flat.dtd
--
Stanimir
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------
Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]