public void endElement(String ns, String name, String qname) throws SAXException {
   dispatch(false);
   context.pop();
   if ("package".equals(name)) { // NOI18N
     handler.end_package();
   } else if ("jdo".equals(name)) { // NOI18N
     handler.end_jdo();
   } else if ("class".equals(name)) { // NOI18N
     handler.end_class();
   } else if ("map".equals(name)) { // NOI18N
     handler.end_map();
   } else if ("field".equals(name)) { // NOI18N
     handler.end_field();
   } else if ("collection".equals(name)) { // NOI18N
     handler.end_collection();
   } else if ("extension".equals(name)) { // NOI18N
     handler.end_extension();
   } else if ("array".equals(name)) { // NOI18N
     handler.end_array();
   }
 }
  public void startElement(String ns, String name, String qname, Attributes attrs)
      throws SAXException {
    dispatch(true);
    context.push(new Object[] {qname, new org.xml.sax.helpers.AttributesImpl(attrs)});

    if ("package".equals(name)) { // NOI18N
      handler.start_package(attrs);
    } else if ("jdo".equals(name)) { // NOI18N
      handler.start_jdo(attrs);
    } else if ("class".equals(name)) { // NOI18N
      handler.start_class(attrs);
    } else if ("map".equals(name)) { // NOI18N
      handler.start_map(attrs);
    } else if ("field".equals(name)) { // NOI18N
      handler.start_field(attrs);
    } else if ("collection".equals(name)) { // NOI18N
      handler.start_collection(attrs);
    } else if ("extension".equals(name)) { // NOI18N
      handler.start_extension(attrs);
    } else if ("array".equals(name)) { // NOI18N
      handler.start_array(attrs);
    }
  }