Hello everyone ... 
 
I want to sign the following xml file ENVELOPED with respect to the element 
with id "a2"
 
         <?xml version="1.0"?>
         <getToken>
              <contexto id="trx">
                   <monto>100</monto>
              </contexto>
 
              <item id="a2">
                   <semilla>10</semilla>
              </item>
 
              <item id="a3">
                   <semilla>11</semilla>
              </item>
          </getToken>
As you can see there is no namespace declaration for the XML file...
 
The output should be:
 

         <?xml version="1.0"?>
         <getToken>
              <contexto id="trx">
                   <monto>100</monto>
              </contexto>
 
              <item id="a2">
                   <semilla>10</semilla>
                   <Signature>... </Signature>
              </item>
 
              <item id="a3">
                   <semilla>11</semilla>
              </item>
          </getToken>
I know that i have to specify the place of the signature were you create an 
instance of the 
DOMSignContext class...
 
I GET WHAT I WANT IF I DO ...
 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
 
doc = dbf.newDocumentBuilder().parse(new FileInputStream("file.xml"));
 
Element e=(Element)doc.getElementsByTagNameNS(null, "item").item(0);
dsc = new DOMSignContext(pk,e );
 
BUT the problem is that for that i will have to know the "NAME" of the element 
and its "POSITION" in the document for the case when the tag appers more than 
once... 
 
So, it would be better to be able to do this....
 
  
Element e=(Element)doc.getElementsByID("a2");
dsc = new DOMSignContext(pk,e );
 
But when i do that i get 
 
Exception in thread "main" java.lang.NullPointerException: parent cannot be null
 
 
I know that you can register the ID attribute as a valid ID type using the 
setIdAttributeNS method of the DomSignContext class, but my problem is that 
given the structure of the Document class and its public methods i have to 
create an instance of the class first, when i create the instance i have to do
 
dsc = new DOMSignContext(pk,e );
 
And after that i could do 
 
dsc.setIdAttributeNS(e, null, "id");
 
and it suppose that after that the id attribute of the e element is 
registered???
 
but at that time i already have the element that i was looking for =(
 
Hope you get it, but i want to obtain the element given its ID, and the source 
xml doen't have an schema associated to it... is the ONLY WAY to obtain the 
element given the id is to use the getElementsByTagNameNS method or i can use 
directly the getElementsByID method directly?? in that case HOw do you do that 
without obtaining the "parent can not be null exception" ??
 
Thanks you very much for reading the email
 
Francisco
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

Reply via email to