public XmlPullParser newPullParser() throws XmlPullParserException {

        if (parserClasses == null) throw new XmlPullParserException
                ("Factory initialization was incomplete - has not tried "+classNamesLocation);

        if (parserClasses.size() == 0) throw new XmlPullParserException
                ("No valid parser classes found in "+classNamesLocation);

        final StringBuffer issues = new StringBuffer ();

        for (int i = 0; i < parserClasses.size (); i++) {
            final Class ppClass = (Class) parserClasses.elementAt (i);
            try {
                final XmlPullParser pp = (XmlPullParser) ppClass.newInstance();
                //            if( ! features.isEmpty() ) {
                //Enumeration keys = features.keys();
                // while(keys.hasMoreElements()) {

                for (Enumeration e = features.keys (); e.hasMoreElements ();) {
                    final String key = (String) e.nextElement();
                    final Boolean value = (Boolean) features.get(key);
                    if(value != null && value.booleanValue()) {
                        pp.setFeature(key, true);
                    }
                }
                return pp;

            } catch(Exception ex) {
                issues.append (ppClass.getName () + ": "+ ex.toString ()+"; ");
            }
        }

        throw new XmlPullParserException ("could not create parser: "+issues);
    }
Creates a new instance of a XML Pull Parser
using the currently configured factory features.

@return A new instance of a XML Pull Parser.
@throws XmlPullParserException if a parser cannot be created which satisfies the
requested configuration.
xpatch/src/main/java/wind/v1/XmlPullParserFactory.java