Re: xHTML problem again

Petr Stehlik <[email protected]>
Newsgroups gmane.comp.java.enhydra.xmlc,gmane.comp.java.enhydra.general
Message-ID <[email protected]>
New information below:

On Út, 2003-04-01 at 13:58, Petr Stehlik wrote:
> I have been trying to compile and produce valid XHTML 1.0 with Enhydra
> 5.0 for some time. I thought that everything was working OK but recently
> I tried to use my own URLRewriter and it didn't work. So I traced it
> down to
> 
> private static DocumentInfo BaseDOMFormatter:findDocumentInfo(Document
> document)
> 
> This function checks the document (which is
> org.enhydra.xml.xhtml.dom.xerces.XHTMLDocumentImpl) and finds out that
> it's neither istanceof DocumentInfo nor instanceof XMLObjectLink. Thus
> this function returns null as the DocumentInfo and thanks to that the
> URLRewriter is ignored.

After several more hours of tracing I found out how the whole logic
works and I see at least two places that I could patch to fix the
problem. Now I'd need your advice which of the places is the correct
one:

1) DOMOps:getDocument() contains the following code:

   if (node instanceof XMLObject) return node.getDocument()
   else if (node instanceof Document) return node;

here I think that the XHTML should be treated more like a standard HTML
(which I believe goes the "instanceof Document" way) so perhaps
switching the order of the 'if' and 'elseif' would help?

2) the node.getDocument above calls XMLObjectImpl:getDocument() and that
one returns the fDocument that was created by XMLC in the compiled HTML
by the following functions:

org.enhydra.xml.xhtml.dom.xerces.XHTMLDocumentImpl document =
buildSubDocument();
setDocument(document,"text/html", "UTF-8");

The buildSubDocument() calls the following functions:

org.apache.xerces.dom.DocumentTypeImpl docType =
(org.apache.xerces.dom.DocumentTypeImpl)fDOMFactory.createDocumentType("html", "-//W3C//DTD XHTML 1.0 Transitional//EN", "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd", null);

org.enhydra.xml.xhtml.dom.xerces.XHTMLDocumentImpl document =
(org.enhydra.xml.xhtml.dom.xerces.XHTMLDocumentImpl)fDOMFactory.createDocument("http://www.w3.org/1999/xhtml", "html", docType);

Does the xerces parser support the DocumentInfo interface at all?

Petr
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.