
import java.io.IOException;
import java.io.StringWriter;
import java.text.SimpleDateFormat;

import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.apache.xml.serialize.XML11Serializer;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;


public class EscapeTest
{
   public static void main(String[] args)
   {
      StringWriter writer = new StringWriter();
      OutputFormat outputFormat = new OutputFormat("xml", "UTF-8", true);
      outputFormat.setLineWidth(0);
//      XML11Serializer mSerializer = new XML11Serializer(writer, outputFormat);
      XMLSerializer mSerializer = new ReportXmlSerializer(writer, outputFormat);

      try
      {
         mSerializer.asDocumentHandler();
         mSerializer.startDocument();
         
         AttributesImpl attributes = new AttributesImpl();
         attributes.addAttribute(null, null, "name", "CDATA", "testcasename");
         attributes.addAttribute("", "time", "", "CDATA", "19:00:12");

         mSerializer.startElement(null, null, "testcase", attributes);
         AttributesImpl errorAttributes = new AttributesImpl();
         errorAttributes.addAttribute(null, null, "type", "CDATA",
               "This is the testcase description: a tag <descriptiontag> !!");
         mSerializer.startElement(null, null, "error", errorAttributes);
         String errortext = "This is the error text with the <errortag> !!";
         mSerializer.characters(errortext.toCharArray(), 0, errortext.length());
         mSerializer.endElement(null, null, "error");
         mSerializer.endElement(null, null, "testcase");
         mSerializer.endDocument();
      
         System.err.println("" + writer.toString());
      }
      catch (Exception ex)
      {
         System.err.println("Exception caught: " + ex.toString());
         ex.printStackTrace();
      }
      
   }
   
}
