I wasn't sure whether the DOMSerializer was DOM Level 2 or not, I gather there are no immediate plans to update DOMSerializer, would it not be possible to use introspection to determine if the node being serialized was DOM Level 2 or not. In the meantime I'll have a look at using SAX 2 or extending DOMSerializer.
-----Original Message----- From: Arkin [mailto:[EMAIL PROTECTED] Sent: 03 April 2000 19:37 To: [EMAIL PROTECTED] Subject: Re: XMLSerializer and Namespaces The DOMSerializer is DOM Level 1, namespace support requires DOM Level 2. We need to figure out a way to support both in the same serializer, or only support DOM Level 2, which might break some existing implementations. For SAX, 1 and 2 use different interfaces so this was never a problem. arkin Anthony Dodd wrote: > > Hi > > I'm currently developing a web based application which needs to be able to > transmit the contents of an XML Document (Built using Xerces 3.0.1) via HTTP > to web application server. The document I want to send should have the > following structure. > > <soap:Envelope xmlns:soap="Some-Namespace-URI"> > <soap:Body> > <t:get xmlns:t="Someother-Namespace-URI"> > <t:element1/> > </t:get> > </soap:body> > </soap:Envelope> > > I've attempted to create this document using the following java code. I'm > making no assumptions that the following code is correct, so any guidelines > would be really useful. > > //Create a new document with given Namespace & Qualified > name > org.w3c.dom.Document doc = > dom.createDocument("Some-Namespace-URI","soap:Envelope",null); > > //Create the Body element > org.w3c.dom.Element body = > doc.createElementNS("Some-Namespace-URI", "soap:Body"); > doc.getDocumentElement().appendChild(body); > > //Create the get element > org.w3c.dom.Element tget = > doc.createElementNS("Someother-Namespace-URI", "t:get"); > body.appendChild(tget); > > //Create the element1 element > org.w3c.dom.Element element1 = > doc.createElementNS("Someother-Namespace-URI", "t:element1); > tget.appendChild(element1); > > When I use the Xerces serializer via the XMLSerializer implementation, the > following code snippet shows how I created and invoked the serializer. > > XMLSerializer serializer = new XMLSerializer(System.out, new > OutputFormat(doc2)); > serializer.serialize(doc2); > serializer.flush(); > > this produces the following output > > <?xml version="1.0" encoding="UTF-8"?> > > <soap:Envelope><soap:Body><t:get><t:element1/></t:get></soap:Body></soap:Env > elope> > > which does not exactly resemble the original document. Is the Xerces > serializer compliant with DOM Level 2, can it recognise the namespaces and > reproduce them in the serialized output. If any body got a solution to this > problem I'd be most grateful. > > Thanks > Anthony Dodd -- ---------------------------------------------------------------------- Assaf Arkin www.exoffice.com CTO, Exoffice Technologies, Inc. www.exolab.org