if( stopNode.getChildCount()==0) { AttributesImpl copyAtts = new AttributesImpl(); copyAtts.addAttribute("","","dst","CDATA",dst); ch.startElement("","",DIFF_NS+"insert",copyAtts); ch.endElement("","",DIFF_NS+"insert"); }
  protected void copy( BaseNode b, BranchNode branch, ContentHandler ch )                        throws SAXException {    // Find stopnodes    Vector stopNodes = new Vector();    m.getAreaStopNodes( stopNodes, branch );    for( Iterator i = stopNodes.iterator();i.hasNext();) {      BranchNode stopNode = (BranchNode) i.next();      String dst = getId(stopNode.getBaseMatch());      for( int ic = 0;ic < stopNode.getChildCount();ic++) {        BranchNode child = stopNode.getChild(ic);        if( child.hasBaseMatch() ) {          // Copy tree...          AttributesImpl copyAtts = new AttributesImpl();          copyAtts.addAttribute("","","src","CDATA",getId(child.getBaseMatch()));          copyAtts.addAttribute("","","dst","CDATA",dst);          ch.startElement("","",DIFF_NS+"copy",copyAtts);          copy( child.getBaseMatch(), child, ch );          ch.endElement("","",DIFF_NS+"copy");        } else {          // Insert tree...          AttributesImpl copyAtts = new AttributesImpl();          copyAtts.addAttribute("","","dst","CDATA",dst);          ch.startElement("","",DIFF_NS+"insert",copyAtts);          insert( child, ch );          ch.endElement("","",DIFF_NS+"insert");        }      } // endfor children    }  }