Hi, you should try to write out the SVG Elements with the following method (instead of using a string):
handler.startElement(String namespaceURI, String localName, String qName, Attributes atts) handler.endElement(String namespaceURI, String localName, String qName) e.g. handler.startElement("http://www.w3.org/2000/svg", "svg", "svg:svg", atts) handler.startElement("http://www.w3.org/2000/svg", "svg", "svg:g", atts) handler.endElement("http://www.w3.org/2000/svg", "svg", "svg:svg") handler.endElement("http://www.w3.org/2000/svg", "svg", "svg:g") etc. Best regards, Matthias On 21.06.2017 13:53, Pierre Caron wrote: > Hello, > > I have a rather trivial problem that I haven't found a solution yet. > > I want to insert dynamically generated SVG code Inside the XML data > which is supplied to FOP. > > To make things simpler, suppose you start from the ExampleObj2PDF > found in FOP Embedding page > (https://xmlgraphics.apache.org/fop/2.2/embedding.html#ExampleObj2PDF) > and that you add a method in the ProjectTeam entity that generates a > SVG String : > > > public String getDynamicSVG() { > return " <svg:svg width=\"20\" height=\"20\">\n" + ... + > "</svg:svg>"; > } > > (http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop/examples/embedding/java/embedding/model/ProjectTeam.java?view=markup) > > > And that this method would be called by the following line inside > ProjectTeamXMLReader class > > handler.element("SVGdynamique",projectMember.getDynamicSVG()); > (http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop/examples/embedding/java/embedding/model/ProjectTeamXMLReader.java?view=markup) > > The question is : how to prevent the SVG tags from being escaped into > < and >? Below is the XML code I'm getting : > > ... > <svgDynamique> <svg:svg width="20" height="20"> > <svg:g style="fill:red; stroke:#000000"> > <svg:rect x="0" y="0" width="15" height="15"/> > <svg:rect x="5" y="5" width="15" height="15"/> > </svg:g> > </svg:svg></svgDynamique> > ... > > In the final step, the SVG string would be merged by the > projectteam2fo.xsl like this : > > <fo:block space-before.optimum="15pt"> > <fo:instream-foreign-object> > <svg xmlns="http://www.w3.org/2000/svg" > width="20" height="20"> > <xsl:copy-of select="svgDynamique" /> > </svg> > </fo:instream-foreign-object>] > </fo:block> > > Is there a way to prevent the escaping? > > Note that the SVG tags get escaped during the XML processing by SAX > not during the insertion into the xsl file. > > Any help would be greatly appreciated! > > Pierre Caron >