docs: @Override
      public Object newInstance( final Class<Object> cls, final InputElement xml ) throws XMLStreamException {
          final Class<?> superclass;
          try {
              superclass = Class.forName( xml.getAttribute( SUPERCLASS ).toString() );
          } catch ( final ClassNotFoundException e ) {
              throw new XMLStreamException( e );
          }
          /* this class should be loaded from the webapp, therefore we have access to the correct class loader
           */
          final ClassLoader classLoader = getClass().getClassLoader();
          final Class<?>[] interfaces = getInterfaces( xml, INTERFACES, classLoader );
          final Callback[] callbacks = xml.get( CALLBACKS );
  
          return createProxy( superclass, interfaces, callbacks );
      }