Суть проста. Есть SVG
<svg
onload="createSVG();">
<defs>
<script><![CDATA[
var fig = {
'1' : {'x' : 10, 'y' : 20, 'fill' : 'red'},
'2' : {'x' : 60, 'y' : 70, 'fill' : 'green'}
};
function createSVG(){
/* вот тут как-то правильно с DOM SVG документа надо работать */
svgDoc = svg.contentDocument;
fig1 = svgDoc.createElement('use'); // ????
}
]]></script>
<g id="figure">
<polygon points="0,0 0,5 5,5 5,0" />
<circle cx="3" cy="3" r="2" />
</g>
</defs>
<rect x="0" y="0" width="100" height="100" />
<!-- вот тут должен быть результат -->
<use xlink:href="#figure" x="10" y="20" fill="red"/>
<use xlink:href="#figure" x="60" y="70" fill="green"/>
</svg>
нужно программно добавить фигурки. в примере выше они добавлены через use.