ch.startElement("","","diff",EMPTY_ATTS); Vector stopNodes = new Vector(); m.getAreaStopNodes(stopNodes, m.getBranchRoot()); copy(m.getBaseRoot(), m.getBranchRoot(), ch, stopNodes); ch.endElement("","","diff");
boolean rootHasMatch = m.getBranchRoot().hasBaseMatch(); AttributesImpl rootAtts = new AttributesImpl(); if( !rootHasMatch ) rootAtts.addAttribute("","",DIFF_ROOTOP_ATTR,"CDATA",DIFF_ROOTOP_INS); ch.startElement("","",DIFF_ROOT_TAG,rootAtts); if( rootHasMatch ) { Vector stopNodes = new Vector(); m.getAreaStopNodes(stopNodes, m.getBranchRoot()); copy(ch, stopNodes); } else { insert(m.getBranchRoot(),ch); } ch.endElement("","",DIFF_ROOT_TAG);
  public void diff( ContentHandler ch ) throws SAXException {    ch.startDocument();    ch.startElement("","","diff",EMPTY_ATTS);    Vector stopNodes = new Vector();    m.getAreaStopNodes(stopNodes, m.getBranchRoot());    copy(m.getBaseRoot(), m.getBranchRoot(), ch, stopNodes);    ch.endElement("","","diff");    ch.endDocument();  }