package temp;



import java.io.ByteArrayInputStream;
import javax.xml.parsers.*;
import org.w3c.dom.*;
/*
import org.apache.xml.security.signature.XMLSignatureInput;
import org.apache.xml.security.c14n.*;
*/

public class TestXerces2 {
   public static void main(String[] args) throws Exception {

      byte[] d = { (byte) 0x0d, (byte) 0x0a };
      String returnStr = new String(d, "UTF-8");
      String str = "<Elem xmlns=\"http://xml.apache.org/#Sample\">" + " "
                   + returnStr + "</Elem>";
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

      dbf.setNamespaceAware(true);

      DocumentBuilder db = dbf.newDocumentBuilder();
      Document doc = db.parse(new ByteArrayInputStream(str.getBytes()));
      Text t = (Text) doc.getDocumentElement().getFirstChild();
      byte[] data = t.getData().getBytes("UTF-8");

      for (int i = 0; i < data.length; i++) {
         System.out.println(i + " " + data[i]);
      }

      /*
      Xerces 1.4.4
      0 32
      1 10

      Xerces 2
      0 32
      1 13
      2 10
      */

      /*
      // v1
      Canonicalizer c14n = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS);
      byte[] result = c14n.canonicalizeDocument(doc);

      // v2
      XMLSignatureInput i = new XMLSignatureInput(new ByteArrayInputStream(str.getBytes()));
      XMLSignatureInput o = new XMLSignatureInput(i.getNodeSet(), null);
      byte[] result = o.getBytes();

      System.out.println(new String(result));
      */
   }

   static {

      // org.apache.xml.security.Init.init();
   }
}
