Hi Ian,

I've never heard of XmlUtils.formatXmlAsString. It's certainly not
distributed with Xerces. Have you tried one of the standard serialization
methods [1] from JAXP or DOM Level 3?

Thanks.

[1] http://xerces.apache.org/xerces2-j/faq-general.html#faq-6

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrgla...@ca.ibm.com
E-mail: mrgla...@apache.org

Ian Hummel <hum...@parityinc.net> wrote on 12/15/2008 03:08:49 PM:

> 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: mrgla...@ca.ibm.com
> E-mail: mrgla...@apache.org
>
> Ian Hummel <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, ravika...@gmail.com wrote:
> >
> > Hi Lan,
> >
> > I think we can Implement by LSParser Interface. 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 <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

Reply via email to