0

Thanks in advance for your help ! I've encountered a problem using batik with an svg file I'm actually creating with the svg I got from my html element. The exception I get is:

org.apache.batik.bridge.BridgeException: The markup in the document preceding the root element must be well-formed. at org.apache.batik.bridge.BridgeContext.getReferencedNode(BridgeContext.java:780) at org.apache.batik.bridge.BridgeContext.getReferencedElement(BridgeContext.java:796) at org.apache.batik.bridge.CSSUtilities.convertClipPath(CSSUtilities.java:719) at org.apache.batik.bridge.AbstractGraphicsNodeBridge.buildGraphicsNode(AbstractGraphicsNodeBridge.java:146) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:224) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208) at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92) at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156) at com.test.chart.server.GreetingServiceImpl.svgtopng(GreetingServiceImpl.java:110) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

I've checked everything, get svg header from one's which are working fine, changing the content, looking at my svg input to be sure everything looks good but still obtain the same error. The svg looks like this (sorry for the length..):

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden;" height="2500" width="1304"><defs id="defs"><clipPath id="_ABSTRACT_RENDERER_ID_0"><rect height="1644" width="806" y="428" x="249"></rect></clipPath></defs><rect fill="#ffffff" stroke-width="0" stroke="none" height="2500" width="1304" y="0" x="0"></rect><g><rect fill="#ffffff" fill-opacity="0" stroke-width="0" stroke="none" height="6" width="237" y="428" x="1061"></rect><g><rect fill="#ffffff" fill-opacity="0" stroke-width="0" stroke="none" height="6" width="237" y="428" x="1061"></rect><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="433.1" x="1069" text-anchor="start">Value</text></g><rect fill="#3366cc" stroke-width="0" stroke="none" height="6" width="6" y="428" x="1061"></rect></g></g><g><rect fill="#ffffff" fill-opacity="0" stroke-width="0" stroke="none" height="1644" width="806" y="428" x="249"></rect><g clip-path="url(http://127.0.0.1:8888/ChartTest.html?gwt.codesvr=127.0.0.1:9997#_ABSTRACT_RENDERER_ID_0)"><g><rect fill="#cccccc" stroke-width="0" stroke="none" height="1644" width="1" y="428" x="249"></rect><rect fill="#cccccc" stroke-width="0" stroke="none" height="1644" width="1" y="428" x="450"></rect><rect fill="#cccccc" stroke-width="0" stroke="none" height="1644" width="1" y="428" x="652"></rect><rect fill="#cccccc" stroke-width="0" stroke="none" height="1644" width="1" y="428" x="853"></rect><rect fill="#cccccc" stroke-width="0" stroke="none" height="1644" width="1" y="428" x="1054"></rect></g><g><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="0" y="460" x="249"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="80" y="624" x="250"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="160" y="788" x="250"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="241" y="953" x="250"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="321" y="1117" x="250"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="402" y="1281" x="250"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="482" y="1445" x="250"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="563" y="1610" x="250"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="643" y="1774" x="250"></rect><rect fill="#3366cc" stroke-width="0" stroke="none" height="101" width="724" y="1938" x="250"></rect></g><g><rect fill="#333333" stroke-width="0" stroke="none" height="1644" width="1" y="428" x="249"></rect></g></g><g></g><g><g><text fill="#444444" stroke-width="0" stroke="none" font-size="20" font-family="Arial" y="2101" x="249.5" text-anchor="middle">0,0</text></g><g><text fill="#444444" stroke-width="0" stroke="none" font-size="20" font-family="Arial" y="2101" x="450.75" text-anchor="middle">2,5</text></g><g><text fill="#444444" stroke-width="0" stroke="none" font-size="20" font-family="Arial" y="2101" x="652" text-anchor="middle">5,0</text></g><g><text fill="#444444" stroke-width="0" stroke="none" font-size="20" font-family="Arial" y="2101" x="853.25" text-anchor="middle">7,5</text></g><g><text fill="#444444" stroke-width="0" stroke="none" font-size="20" font-family="Arial" y="2101" x="1054.5" text-anchor="middle">10,0</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="512.75" x="243" text-anchor="end">point0</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="677.0500000000001" x="243" text-anchor="end">point1</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="841.35" x="243" text-anchor="end">point2</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="1005.6500000000001" x="243" text-anchor="end">point3</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="1169.9499999999998" x="243" text-anchor="end">point4</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="1334.25" x="243" text-anchor="end">point5</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="1498.55" x="243" text-anchor="end">point6</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="1662.85" x="243" text-anchor="end">point7</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="1827.15" x="243" text-anchor="end">point8</text></g><g><text fill="#222222" stroke-width="0" stroke="none" font-size="6" font-family="Helvetica" y="1991.45" x="243" text-anchor="end">point9</text></g></g></g><g><g><text fill="#222222" stroke-width="0" stroke="none" transform="rotate(-90 121 1250)" font-style="italic" font-size="20" font-family="Arial" y="1250" x="121" text-anchor="middle">Name</text></g></g><g></g></svg>

If you need any more information, ask me ! Thanks a lot for your help, Coralie

1 Answers1

1

The problem is not the XML preamble. It fails even if you remove that completely.

I did a little experimenting and the culprit was this:

<g clip-path="url(http://127.0.0.1:8888/ChartTest.html?gwt.codesvr=127.0.0.1:9997#_ABSTRACT_RENDERER_ID_0)">

It is trying to reference a clip path at another URL. Batik doesn't like it.

If you change that to just a simple:

<g>

the file seems to render fine.

Paul LeBeau
  • 97,474
  • 9
  • 154
  • 181
  • Yes it works !!! Thanks a lot, I was a bit discouraged since I'm stuck on this problem for a few days.. You're really amazing, Have a nice day, Coralie – user3699603 Jun 02 '14 at 19:15