Hi folks,
I am trying to embed a digital signature into a XML document as processing
instructions like following:
<top>
<contract>
...
</contract>
<?DigSignA234B5678E897?>
</top>
The signature was generated by using 'byte[] Signature.sign(bye[])' from
java.security package. However, when I ran following code:
...
byte[] data = ""> byte[] sig = signature.sign(data);
...
Element root = doc.createElement("top");
doc.appendChild(root);
...
root.appendChild (
doc.createProcessingInstruction("DigSign" + new String(sig), null) );
I am trying to embed a digital signature into a XML document as processing
instructions like following:
<top>
<contract>
...
</contract>
<?DigSignA234B5678E897?>
</top>
The signature was generated by using 'byte[] Signature.sign(bye[])' from
java.security package. However, when I ran following code:
...
byte[] data = ""> byte[] sig = signature.sign(data);
...
Element root = doc.createElement("top");
doc.appendChild(root);
...
root.appendChild (
doc.createProcessingInstruction("DigSign" + new String(sig), null) );
I got
java.lang.InstantiationError: org/w3c/dom/DOMException
at
org.apache.xerces.dom.DocumentImpl.createProcessingInstruction(DocumentImpl.java:566)
If I switch to sun's crimson parser, the
error message is more informative:
org.apache.crimson.tree.DomEx:
INVALID_CHARACTER_ERR: An invalid character was specified, such as in a
name.
at
org.apache.crimson.tree.XmlDocument.createProcessingInstruction(XmlDocument.java:984)
I guess some kind of encoding has to be done to the signature byte array before I construct the
String and pass it to this method. But I don't know how to do it. Can somebody point it out?
thanx in advance
-Lei
I guess some kind of encoding has to be done to the signature byte array before I construct the
String and pass it to this method. But I don't know how to do it. Can somebody point it out?
thanx in advance
-Lei
