You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by bu...@apache.org on 2003/03/10 12:04:07 UTC

DO NOT REPLY [Bug 17763] - Internal DTD comments cause invalid XML

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17763>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17763

Internal DTD comments cause invalid XML

jefft@apache.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|NamespaceNormalizingDOMStrea|Internal DTD comments cause
                   |mer doesn't support DTDs    |invalid XML



------- Additional Comments From jefft@apache.org  2003-03-10 11:04 -------
Yes you're right, it's nothing to do with the DOMStreamer.

3 months ago (Forrest's last Cocoon snapshot), Cocoon would completely ignore
SAX events between startDTD and endDTD.  Now, while it ignores the internal
subset (not implementing DeclHandler), it tries to print the <!DOCTYPE, and
comments. So this SAX stream:

[setDocumentLocator]
[startDocument]
[startDTD] name=test,publicId=,systemId=
[comment]  a comment
[endDTD]
[startElement] uri=,local=test,raw=test
[characters] Hello world
[endElement] uri=,local=test,qname=test
[endDocument]

Results in:

<!DOCTYPE test PUBLIC "" ""<!-- a comment-->>
<test>Hello world</test>

I'm assuming this isn't the Xerces serializer's fault. It is Cocoon's job not to
feed Xerces bad SAX events.

Short-term hacky solution would be to throw out all events between startDTD and
endDTD. A better longer-term solution would be to implement DeclHandler. Quite a
major change. Wish I knew when/why the old behaviour changed.

--Jeff