Som de andre indlæg påpeger, er spørgsmålet også hvad du skal anvende XML til?
Der er mange muligheder 

. En af dem, er blot at kunne behandle et XML dokument 
med et XSL script, som vil resultere i f.eks. et HTML dokument.
Det er eksempel på  sådan en klasse at jeg vedlægger.
Det du skal være opmærksom på er de klasser som findes i 
"org.xml.sax" og "org.apache.xalan.xslt", der er mange lækker klasser der.  
/pawel
import java.io.*;
public class MoreTest  {
/**
 * MoreTest constructor comment.
 */
public MoreTest() {
   super();
}
/**
 * Starter applikationen.
 * @param args en array af kommando-linie argumenter
 * f.eks.: MoreTest c:\test.xml c:\test.xsl c:\test.html
 */
public static void main(java.lang.String[] args) {
   MoreTest mt = new MoreTest();
   if (args.length == 3)
   { 
      try {
         mt.transform(args[0],args[1],args[2]);
      }
      catch (java.io.IOException ioex) {
         System.out.println("error in main : " + ioex.getMessage());
         return;
      }
      catch (org.xml.sax.SAXException saxx) {
         System.out.println("error in main : " + saxx.getMessage());
         return;
      }
   System.out.println("html klar...");
   }
   return;
}
void startTransforming(String xml, String xsl, String output) {
   try 
   {
      transform(xml,xsl,output);
   }
   catch (java.io.IOException ioex) 
   {
      System.out.println("error in main : " + ioex.getMessage());
      return;
   }
   catch (org.xml.sax.SAXException saxx) 
   {
      System.out.println("error in main : " + saxx.getMessage());
      return;
   }
   System.out.println("genresult.html klar...");
}
public static void transform(String xmlURL, String xslURL, String outputURL)
  throws java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException {
  // Instantierer en XSLTProcessor.
  org.apache.xalan.xslt.XSLTProcessor processor =
     org.apache.xalan.xslt.XSLTProcessorFactory.getProcessor();
             
  // Opret de 3 objekter som skal anvendes til oversættelse af XML dokumentet
  org.apache.xalan.xslt.XSLTInputSource xmlSource = new org.apache.xalan.xslt.XSLTInputSource (xmlURL);
  org.apache.xalan.xslt.XSLTInputSource xslSheet =  new org.apache.xalan.xslt.XSLTInputSource (xslURL);
  org.apache.xalan.xslt.XSLTResultTarget xmlResult = new org.apache.xalan.xslt.XSLTResultTarget (outputURL);
  // Genererer resultat
  processor.process(xmlSource, xslSheet, xmlResult);
}
public void wrfile(PrintWriter pw, String filename) {
   try
   {
      BufferedReader reader = new BufferedReader(new FileReader(new File(filename)));
      String line = reader.readLine();
      while (line != null)
      {
         pw.println(line);
         line = reader.readLine();
      }
      reader.close();
   }
   catch (Exception ex)
   {
      System.err.println("wrfile " + ex.getMessage());
   }
}
}