Hi Mike,
(for the benefit of others please reply to the mailing list when you
respond)
... so you have a method which builds a DOM and returns its root element.
Surely there's some other code which does some processing with this Node,
possibly mutating the subtree before serializing it. You should take a look
at what that code does.
Thanks.
Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@xxxxxxxxxx
E-mail: mrglavas@xxxxxxxxxx
"Mike Gardiner" <gardinerm@xxxxxxxxx> wrote on 10/04/2007 09:21:01 AM:
> I'm using a Document Builder. In the following section of code, the
> variable 'xml' is a string containing the xml to be transformed to a
> document / document element
>
> org.w3c.dom.Document document = null;
> try {
> DocumentBuilderFactory factory = org.apache.xerces.jaxp.
> DocumentBuilderFactoryImpl.newInstance();
> factory.setNamespaceAware(false);
> factory.setValidating(false);
>
> DocumentBuilder builder;
>
> builder = factory.newDocumentBuilder();
> document = builder.parse(new InputSource(new
StringReader(xml)));
>
>
>
> return document.getDocumentElement();
> }
>
> On 10/3/07, Michael Glavassevich < mrglavas@xxxxxxxxxx> wrote:
> Hi Mike,
>
> Xerces doesn't magically add new namespace declarations to documents. In
> each place you mention what "Java" is doing what are you referring to? A
> transformer?
>
> Thanks.
>
> Michael Glavassevich
> XML Parser Development
> IBM Toronto Lab
> E-mail: mrglavas@xxxxxxxxxx
> E-mail: mrglavas@xxxxxxxxxx
>
> "Mike Gardiner" <gardinerm@xxxxxxxxx> wrote on 10/03/2007 02:44:13 PM:
>
> > Hello,
> >
> > I'm trying to load some XML without it being modified but from what I
> > see, no matter which way I load it (.setNamespaceAware = true|false)
> > java is making modifications to my XML.
> >
> > Eg:
> >
> > If I have source XML
> >
> > <root xmlns:ns="http://someURI.net">
> > <ns:tag1>some value</ns:tag1>
> > <ns:tag2>
> > <tag3>some value for tag 3</tag3>
> > </ns:tag2>
> > </root>
> >
> > And I load it using a DocumentBuilderFactory with
> > .setNamespaceAware=true I get:
> >
> > <root xmlns:ns="http://someURI.net">
> > <ns:tag1>some value</ns:tag1>
> > <ns:tag2>
> > <ns5:tag3 xmlns=" http://test.net" xmlns:ns5="http://test.net">some
> > value for tag 3</ns5:tag3>
> > </ns:tag2>
> > </root>
> >
> > And if I load it using .setNamespaceAware=false I get:
> >
> > <root xmlns:ns="http://someURI.net">
> > <ns:tag1 xmlns:ns="">some value</ns:tag1>
> > <ns:tag2 xmlns:ns="">
> > <tag3>some value for tag 3</tag3>
> > </ns:tag2>
> > </root>
> >
> >
> > So basically what I'm asking is how do I load my source XML as it is
> > without having Java modify it?
> >
> > I have tags that don't have namespace information, and that is by
> > design, but if I load the XML and let java assign a random namespace
> > to it, it's no longer the same XML. And if I tell the document builder
> > to not be namespace aware then it starts redefining namespaces to "".
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: j-users-unsubscribe@xxxxxxxxxxxxxxxxx
> > For additional commands, e-mail: j-users-help@xxxxxxxxxxxxxxxxx
|