Use the DocType class to insert a document type declaration
JDOM does not support internal DTD subsets.
JDOM does not let you output a DTD.
import java.math.*;
import java.io.*;
import org.jdom.*;
import org.jdom.output.XMLOutputter;
public class ValidFibonacci {
public static void main(String[] args) {
Element root = new Element("Fibonacci_Numbers");
BigInteger low = BigInteger.ZERO;
BigInteger high = BigInteger.ONE;
for (int i = 0; i <= 25; i++) {
Element fibonacci = new Element("fibonacci");
Attribute index = new Attribute("index", String.valueOf(i));
fibonacci.addAttribute(index);
fibonacci.setText(low.toString());
BigInteger temp = high;
high = high.add(low);
low = temp;
root.addContent(fibonacci);
}
DocType type = new DocType("Fibonacci_Numbers", "fibonacci.dtd");
Document doc = new Document(root, type);
// serialize it into a file
try {
FileOutputStream out = new FileOutputStream("validfibonacci.xml");
XMLOutputter serializer = new XMLOutputter();
serializer.output(doc, out);
out.flush();
out.close();
}
catch (IOException e) {
System.err.println(e);
}
}
}
View Output in Browser