Re: Enhydra: Re: xHTML problem again

David Li <[email protected]>
Newsgroups gmane.comp.java.enhydra.xmlc,gmane.comp.java.enhydra.general
Message-ID <[email protected]>
DocumentInfo is a XMLC interface, not a standard DOM. There is a way to  
create DocumentInfo from a DOM Document object. It's used  
GenericLinkedHTMLDocument to wrap the Document object and I think  
GenericLinkedHTMLDocument implements the DocumentInfo interface.

David


On Wednesday, Apr 2, 2003, at 16:34 Asia/Shanghai, Petr Stehlik wrote:

> 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.createD 
> ocument("http://www.w3.org/1999/xhtml", "html", docType);
>
> Does the xerces parser support the DocumentInfo interface at all?
>
> Petr
>
>
> _______________________________________________
> Enhydra mailing list
> [email protected]
> http://www.enhydra.org/mailman/listinfo.cgi/enhydra
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.