On Tue, Mar 17, 2009 at 12:59 AM, Vincent Massol <[email protected]> wrote:
> Hi Asiri, > > On Mar 16, 2009, at 6:58 PM, asiri (SVN) wrote: > > > Author: asiri > > Date: 2009-03-16 18:58:57 +0100 (Mon, 16 Mar 2009) > > New Revision: 17677 > > > > Modified: > > platform/core/trunk/xwiki-xml/pom.xml > > platform/core/trunk/xwiki-xml/src/main/java/org/xwiki/xml/internal/ > > html/DefaultHTMLCleaner.java > > Log: > > XWIKI-3365: Get rid of jdom dependency in xwiki-xml module > > > > * Fixed. > > [snip] > > > + } > > // Workaround HTML XML declaration bug. > > - fixCleanedNodeBug(cleanedNode); > > - > > - // Ideally following code should be enough. But SF's HTML > > Cleaner seems to omit the DocType declaration while > > - // serializing. > > - // See > https://sourceforge.net/tracker/index.php?func=detail&aid=2062318&group_id=183053&atid=903696 > > - // cleanedNode.setDocType(new DoctypeToken("html", > > "PUBLIC", "-//W3C//DTD XHTML 1.0 Strict//EN", > > - // "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd > > ")); > > - // try { > > - // result = new DomSerializer(cleanerProperties, > > false).createDOM(cleanedNode); > > - // } catch(ParserConfigurationException ex) { } > > - // As a workaround, we have go through JDOM so that we can > > set the DocType manually. > > - org.jdom.Document jdomDoc = null; > > - jdomDoc = new JDomSerializer(cleanerProperties, > > false).createJDom(cleanedNode); > > - jdomDoc.setDocType(new DocType("html", "-//W3C//DTD XHTML > > 1.0 Strict//EN", > > - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd")); > > + fixCleanedNodeBug(cleanedNode); > > + // Serialize the cleanedNode TagNode into a w3c dom. > > try { > > - result = new DOMOutputter().output(jdomDoc); > > - } catch (JDOMException ex) { > > - throw new RuntimeException("Error while transforming > > jdom document into w3c document", ex); > > + Document tempDoc = new DomSerializer(cleanerProperties, > > false).createDOM(cleanedNode); > > + DOMImplementation domImpl = > > + > > DocumentBuilderFactory > > .newInstance().newDocumentBuilder().getDOMImplementation(); > > + DocumentType docType = > > + domImpl.createDocumentType(QUALIFIED_NAME_HTML, "-// > > W3C//DTD XHTML 1.0 Strict//EN", > > + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd > > "); > > + result = domImpl.createDocument(null, > > QUALIFIED_NAME_HTML, docType); > > + > > result.replaceChild(result.adoptNode(tempDoc.getDocumentElement()), > > result.getDocumentElement()); > > + } catch (ParserConfigurationException ex) { > > + throw new RuntimeException("Error while serializing > > TagNode into w3c dom.", ex); > > cool but why have you removed the comment saying that there's a SF > html cleaner bug? Can you put it back and instead add that this is > workaround? Fixed. Thanks. - Asiri > > > Thanks > -Vincent > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

