[jdom-interest] Problem with mixed content

Vyacheslav Pedak san at most5.krasnoyarsk.su
Tue Sep 12 23:02:47 PDT 2000


Brett McLaughlin <brett.mclaughlin at lutris.com> wrote:

> > I have simple xml like this:
> > <?xml version="1.0" encoding="ISO-8859-1"?>
> > <test>
> >   <element>
> >     text
> >   </element>
> > </test>
> > 
> > and when I do
> > 
> >         Document doc = builder.build(new File(filename));
> >         Element root = doc.getRootElement();
> >         System.out.println("hasMixedContent="+root.hasMixedContent());
> > 
> > I receive true, but there no mixed content in this xml.
> 
> Yes it does. The root element has both character data (white space) and
> elements. It would only have no mixed content if a DTD was present, and
> specified that the element "test" could only have nested elements. JDOM
> is doing exactly the right thing.
> 

Thank you and Jason Hunter, now I understand my error.
But when I try to solve it, I found another one.
I rewrite my xml like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE test [
  <!ELEMENT test (child) >
  <!ELEMENT child (#PCDATA| b)* >
  <!ELEMENT b (#PCDATA)>
]>
<test>
  <child>
    text <b>bold text</b> text
  </child>
</test>

So now root element did not have mixed content and child element has it.
But when I try this:
        Element root = doc.getRootElement();
        System.out.println("root.hasMixedContent="+root.hasMixedContent());
        Element elem = root.getChild("child");
        System.out.println("elem.hasMixedContent="+elem.hasMixedContent());

I received false in both cases.
What wrong again?

Vyacheslav Pedak





More information about the jdom-interest mailing list