From: Frederique A. <fre...@sm...> - 2012-10-22 13:37:14
|
Bonjour, On utilise la version 3.4 car la 4.0 n'est pas encore validé. Est ce que ce sera corrigé dans la 3.4 ? Aussel Frédérique Smile ----- Mail original ----- De: "Nicolas Richeton" <nic...@gm...> À: "Frederique Aussel" <fre...@sm...> Cc: web...@li... Envoyé: Samedi 20 Octobre 2012 23:06:59 Objet: Re: [EsiGate-users] Bug sur utilisation esi xpath Bonjour Frédérique, De mon coté, je tenterai de surcharger HtmldocumentBuilder / DomTreeBuilder pour injecter le namespace 'xml' qui devrait être présent selon les specs xhtml. Plus intrusif dans validator.nu, mais devrait éviter tout effet de bord. On peut aussi combiner avec alter_infoset pour éviter de planter en cas de document invalide. Il faut ouvrir un ticket dans mantis :-) Nicolas Le 19 oct. 2012 à 14:15, Frederique Aussel a écrit : > Bonjour, > > Lorsqu'on utilise esi:include : > <esi:include src="$PROVIDER({aggregated2})/block.jsp"xpath="//html:div[@id='xpathfragment']" /> > > Si la page cible contient dans son tag HTML : xml:lang="fr", ESIGate n'arrive pas à parser le document : > > org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces. > at nu.validator.htmlparser.impl.TreeBuilder.fatal(TreeBuilder.java:430) > at nu.validator.htmlparser.dom.DOMTreeBuilder.createHtmlElementSetAsRoot(DOMTreeBuilder.java:185) > at nu.validator.htmlparser.dom.DOMTreeBuilder.createHtmlElementSetAsRoot(DOMTreeBuilder.java:44) > at nu.validator.htmlparser.impl.TreeBuilder.appendHtmlElementToDocumentAndPush(TreeBuilder.java:4480) > at nu.validator.htmlparser.impl.TreeBuilder.startTag(TreeBuilder.java:2534) > at nu.validator.htmlparser.impl.Tokenizer.emitCurrentTagToken(Tokenizer.java:1311) > at nu.validator.htmlparser.impl.Tokenizer.stateLoop(Tokenizer.java:2152) > at nu.validator.htmlparser.impl.Tokenizer.tokenizeBuffer(Tokenizer.java:1522) > at nu.validator.htmlparser.io.Driver.runStates(Driver.java:301) > at nu.validator.htmlparser.io.Driver.tokenize(Driver.java:217) > at nu.validator.htmlparser.dom.HtmlDocumentBuilder.tokenize(HtmlDocumentBuilder.java:405) > at nu.validator.htmlparser.dom.HtmlDocumentBuilder.parse(HtmlDocumentBuilder.java:204) > at org.esigate.xml.XpathRenderer.render(XpathRenderer.java:69) > at org.esigate.Driver.render(Driver.java:300) > at org.esigate.Driver.render(Driver.java:254) > at org.esigate.esi.IncludeElement.processPage(IncludeElement.java:222) > at org.esigate.esi.IncludeElement.parseTag(IncludeElement.java:100) > at org.esigate.esi.BaseElement.onTagStart(BaseElement.java:28) > at org.esigate.parser.ParserContextImpl.startElement(ParserContextImpl.java:58) > at org.esigate.parser.Parser.parse(Parser.java:66) > at org.esigate.esi.EsiRenderer.render(EsiRenderer.java:39) > at org.esigate.Driver.proxy(Driver.java:358) > at org.esigate.servlet.AggregatorServlet.service(AggregatorServlet.java:37) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > at java.lang.Thread.run(Thread.java:662) > Caused by: org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces. > at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.checkDOMNSErr(CoreDocumentImpl.java:2535) > at com.sun.org.apache.xerces.internal.dom.AttrNSImpl.setName(AttrNSImpl.java:113) > at com.sun.org.apache.xerces.internal.dom.AttrNSImpl.<init>(AttrNSImpl.java:74) > at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createAttributeNS(CoreDocumentImpl.java:2138) > at com.sun.org.apache.xerces.internal.dom.ElementImpl.setAttributeNS(ElementImpl.java:656) > at nu.validator.htmlparser.dom.DOMTreeBuilder.createHtmlElementSetAsRoot(DOMTreeBuilder.java:179) > ... 34 more > > Est ce que la modification suivante est envisageable dans la classe XpathRenderer : > > HtmlDocumentBuilder htmlDocumentBuilder = new HtmlDocumentBuilder(XmlViolationPolicy.ALLOW); > htmlDocumentBuilder.setNamePolicy(XmlViolationPolicy.ALTER_INFOSET); > > Les corrections proposées ont pour effet de transformer les attributs non reconnus dans le DOM, avec par exemple pour xml:lang : > > <html lang="fr" xmlU0003A0lang="fr" xmlns="http://www.w3.org/1999/xhtml"> > > Cette correction pourrait induire un effet de bord pour les syntaxes HTML5. > > Est ce que vous avez une meilleur solution ? > > Cdt, > > Aussel Frédérique > Smile > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_sfd2d_oct_______________________________________________ > Webassembletool-users mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webassembletool-users |