If you are stuck with a bad post processor, than you will have to post process what xerces spits out with something like
xmlAsAString = xmlAsAString.replaceAll("<([^>]*)/>", "<$1></$1>"); -----Original Message----- From: "Ian Hummel" <hum...@parityinc.net> Sent: Monday, December 15, 2008 3:08pm To: "j-users@xerces.apache.org" <j-users@xerces.apache.org> Subject: Re: How to preserve an empty text node? Hi Michael, I know <tag></tag> and <tag/> are the same, but unfortunately the buggy-parser-that-cannot-be-changed on the other end doesn't :) DocumentBuilder db = dbf.newDocumentBuilder(); Document d = db.newDocument(); Element root = d.createElement("root"); Element tag = d.createElement("tag"); tag.setTextContent(""); d.appendChild(root); root.appendChild(tag); System.out.println(XmlUtils.formatXmlAsString(d)); This always outputs <tag/> and never <tag></tag> like I need it to. - Ian. On Dec 12, 2008, at 10:33 PM, Michael Glavassevich wrote: Hi Ian, > I need to create XML that looks like this whenever the value of > "tag" is "" (the empty string): > > <root> > <tag></tag> > </root> Why? <tag/> and <tag></tag> have the same meaning. Whichever form is chosen by the serializer should have no significance. > I am more concerned in preserving the empty text node when I > serialize to e.g. a file... not so much the parsing. > > Any one else have any ideas? Would help if you showed your code for serializing the document. > Are blank text nodes like that invalid XML or something? In the snippet you posted you created a text node with the '\t' (tab) character in it. That isn't "blank" or empty. Thanks. Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: [mailto:mrgla...@ca.ibm.com] mrgla...@ca.ibm.com E-mail: [mailto:mrgla...@apache.org] mrgla...@apache.org Ian Hummel <[mailto:hum...@parityinc.net] hum...@parityinc.net> wrote on 12/12/2008 09:21:47 AM: > Hi, I didn't really understand how that's going to help. > > I am more concerned in preserving the empty text node when I > serialize to e.g. a file... not so much the parsing. > > Any one else have any ideas? Are blank text nodes like that invalid > XML or something? > > On Dec 11, 2008, at 11:53 AM, [mailto:ravika...@gmail.com] > ravika...@gmail.com wrote: > > Hi Lan, > > I think we can Implement by LSParser Interface. [http://java.sun] > http://java.sun. > com/j2se/1.5.0/docs/api/org/w3c/dom/ls/LSParser.html > this link may help you. > > Regards, > Ravikanth > On Thu, Dec 11, 2008 at 7:36 PM, Ian Hummel <[mailto:hum...@parityinc.net] > hum...@parityinc.net> wrote: > Hi everyone, > > I need to create XML that looks like this whenever the value of > "tag" is "" (the empty string): > > <root> > <tag></tag> > </root> > > I've tried the following: > > DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); > DocumentBuilder db = dbf.newDocumentBuilder(); > Document d = db.newDocument(); > Element root = d.createElement("root"); > Element tag = d.createElement("tag"); > d.appendChild(root); > root.appendChild(tag); > Text text = d.createTextNode("\t"); > tag.appendChild(text); > > but I always end up with XML like this: > > <root> > <tag/> > </root> > > Is there a way to force empty text nodes to get "denormalized" ? > > Thanks, > > Ian. > > -- > Ravikanth