[jdom-interest] Namespaces and XMLOutputter
Knorr, Christian
Christian.Knorr at astrium-space.com
Thu Jan 25 01:27:45 PST 2001
Well, it was not beta5 but the cvs build from December, 13. But you are
right, DOMBuilder makes absolutely no sense so I switched my project to
SAXBuilder now.
However, I downloaded the lates daily snapshot from tonight and ran into
another problem regarding DOMBuilder. This former testfile works fine
with DOMBuilder but I used another one that fails:
The original file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Test>
<Test xmlns:xlink="http://www.w3.org/1999/xlink">
<Link ID="1" xlink:type="extended">
<Source xlink:href="2" xlink:type="locator" />
<Target xlink:href="3" xlink:type="locator" />
</Link>
</Test>
Still the old code:
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
public class TestClass {
public static void main(String[] args) throws Exception {
try {
FileInputStream in = new FileInputStream(args[0]);
Document d = new DOMBuilder().build(in);
XMLOutputter outp = new XMLOutputter("", false);
outp.output(d, System.out);
} catch (Exception e) {
e.printStackTrace();
}
}
}
And here the output:
org.jdom.JDOMException: Error in building from stream: The name
"xlink:type" is
not legal for JDOM/XML attributes: Attribute names cannot contain
colons.
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:172)
at
com.astrium.vadis.testClasses.TestClass.main(TestClass.java:12)
Root cause: org.jdom.IllegalNameException: The name "xlink:type" is not
legal fo
r JDOM/XML attributes: Attribute names cannot contain colons.
at org.jdom.Attribute.<init>(Attribute.java:110)
at org.jdom.input.DOMBuilder.buildTree(DOMBuilder.java:324)
at org.jdom.input.DOMBuilder.buildTree(DOMBuilder.java:340)
at org.jdom.input.DOMBuilder.buildTree(DOMBuilder.java:272)
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:169)
at
com.astrium.vadis.testClasses.TestClass.main(TestClass.java:12)
I had this error long time ago and it seemed to be fixed since then...
Christian Knorr
Jason Hunter wrote:
>
> Thanks for sending in the code for me to try. I think you're still
> running against beta5 somehow. I fixed this exact xmlns placement bug
> in DOMBuilder about 2-3 weeks ago and daily snapshot I have behaves
> correctly:
>
> C:/tmp/jdom 64 % java TestClass ns.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE a:messagelist><a:messagelist xmlns:a="http://www.a.com"
> xmlns:b="http:
> //www.b.com" xmlns:c="http://www.c.com">
> <b:message1>
> <c:item1 value="500" />
> </b:message1>
> </a:messagelist>
>
> I see also you don't have the recent XMLOutputter fix to move the
> <!DOCTYPE> after the decl line. Pretty clear your output was generated
> by beta5 code.
>
> -jh-
>
> P.S. Anyone out there using DOMBuilder should switch to SAXBuilder
> where possible. It's far faster, as the DOMBuilder docs warn.
>
--
Christian Knorr, Astrium GmbH, Bremen / Germany
email: christian.knorr at astrium-space.com
phone: +49 (0)421 / 539 - 5673
More information about the jdom-interest
mailing list