On Tuesday 30 October 2001 10:30, Keiron Liddle wrote:
> Hi,
>
> I have some svg content embedded inside an xml document. I am reading
> through the dom and when I find the svg I am trying to convert it into an
> svg document.
>
> The svg xml is identified with an xmlns="...".
>
> If I create a new generic document then import the svg node and add it as
> the root document node. I have the equivalent of the svg document I want.
> Then to convert it into a batik svg document I try to use
> DOMUtilities.deepCloneDocument(...)
> this only gives back a document with a generic root element (which will
> cause an npe if I try to get the root document element). The problem is
> that the node.getNamespaceURI() returns null for my intermediate document.
>
> If I copy the deepCloneDocument method and give it the correct namespace it
> still cannot work (as the child nodes also have a null namespace I presume)
> as the attributes are not copied across.
> The new document has a bunch of new attributes on the root svg element and
> also has the xmlns="<svg namespace>" repeated, I believe one has the null
> namespace and the other has the xmlns namespace
>
> I get the following exception when I attempt to import the root node of the
> document into yet another svg document.
>
> java.lang.NullPointerException
>       at
> org.apache.batik.dom.AbstractElement.fireDOMAttrModifiedEvent(AbstractEleme
>nt.java:486) at
> org.apache.batik.dom.AbstractElement$NamedNodeHashMap.setNamedItem(Abstract
>Element.java:677) at
> org.apache.batik.dom.AbstractElement$NamedNodeHashMap.setNamedItemNS(Abstra
>ctElement.java:625) at
> org.apache.batik.dom.AbstractElement.setAttributeNode(AbstractElement.java:
>168) at
> org.apache.batik.dom.AbstractElement.copyInto(AbstractElement.java:407) at
> org.apache.batik.dom.svg.SVGOMElement.copyInto(SVGOMElement.java:203) at
> org.apache.batik.dom.AbstractNode.cloneNode(AbstractNode.java:275) at
> org.apache.batik.dom.AbstractDocument.importNode(AbstractDocument.java:211)
>
>
> Does anyone know if there is a way to handle this.
> I just want to get a batik dom svg document that is the equivalent of the
> svg that is embedded in the original document.
> I cannot create an svg document and then add or replace the root element as
> batik won't let me.

It is difficult to help you without some examples or pieces of code.
But what you must have in mind is that the xmlns attribute and prefix is used 
by XML parsers to bind elements to namespaces, and once you are in the DOM 
world it is not used anymore.
To make the importation work, you must be sure that all the elements of the 
SVG fragment were in the SVG namespace at creation time.

>
> Thanks
> Keiron.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to