import java.math.*; import java.io.*; public class FibonacciDTD { public static void main(String[] args) { try { FileOutputStream fout = new FileOutputStream("valid_fibonacci.xml"); OutputStreamWriter out = new OutputStreamWriter(fout, "UTF-8"); BigInteger low = BigInteger.ZERO; BigInteger high = BigInteger.ONE; out.write("<?xml version=\"1.0\"?>\r\n"); out.write("<!DOCTYPE Fibonacci_Numbers [\r\n"); out.write(" <!ELEMENT Fibonacci_Numbers (fibonacci*)>\r\n"); out.write(" <!ELEMENT fibonacci (#PCDATA)>\r\n"); out.write(" <!ATTLIST fibonacci index CDATA #IMPLIED>\r\n"); out.write("]>\r\n"); out.write("<Fibonacci_Numbers>\r\n"); for (int i = 0; i < 25; i++) { out.write(" <fibonacci index=\"" + i + "\">"); out.write(low.toString()); out.write("</fibonacci>\r\n"); BigInteger temp = high; high = high.add(low); low = temp; } out.write("</Fibonacci_Numbers>"); out.close(); } catch (IOException e) { System.err.println(e); } } }