Hi, All
 
I am user Xerces 1.4 SAX parser. In my content handler, I need to print out the root element exactly the same as the original XML file I am parsing. Following is the code I used:

public void startElement(....) {
   ...
   System.out.print("<"+localName);
  
   for(int i=0; i<atts.getLength(), i++)
   {
      System.out.print(" " + atts.getName(i) + "=" + atts.getValue(i));
   }
  
   System.out.print(">");
   ....
}

When the root element have no namespace informaion, the print out looks perfect:
original:
<root ID="5">
printout from my code:
<root ID="5">

but, when I add some namespace information into the root element, the print out is not what I expected:
original:
<root
xmlns="http://myProject.myCompany.com/order"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://myProject.myCompany.com/order order.xsd"
ID="5">

now the print out is:
<root
xsi:schemaLocation="http://myProject.myCompany.com/order order.xsd"
ID="5">

here, I missed two lines from the original xml file. I tried to debug my code, and found that the xml=... and xml:xsi=... was not listed in the atts as attribute name/value pair. What's the reason? How to fix my problem?

Thanks for any comments.
 
Linda

Reply via email to