public void writeStartElement(
     java.lang.String prefix, java.lang.String localName, java.lang.String namespaceURI)
     throws XMLStreamException {
   ctx.push();
   if (prefix != null) {
     setPrefix(prefix, namespaceURI);
   }
   QName name = new QName(namespaceURI, localName, prefix);
   elements.push(name);
   if (!skipWrap) {
     if (currentTypeListener == null) {
       paramElement = name;
       setCurrentTypeListener(name);
     } else {
       currentTypeListener.processStartElement(name);
     }
   } else {
     wrapElementName = name;
     skipWrap = false;
   }
 }