classInfo.addFieldInfo(cInfo.getTextField());
    private static void processArchetype        (Archetype archetype, FactoryState state)     {                String typeName = archetype.getName();                ClassInfo classInfo = state.classInfo;        classInfo.setSchemaType(new XSClass(state.jClass, typeName));                Schema schema = archetype.getSchema();        classInfo.setNamespaceURI(schema.getTargetNamespace());                                //- Handle derived types        if (archetype.getSource() != null) {                    String sourceName = archetype.getSource();            Archetype source = schema.getArchetype(sourceName);            if (source != null) {                                String className = null;                                ClassInfo cInfo = state.resolve(source);                if (cInfo == null) {                                        String packageName = state.jClass.getPackageName();                    JClass jClass = createSourceCode(source,                                                      state,                                                     packageName);                    cInfo = state.resolve(source);                    className = jClass.getName();                }                else className = cInfo.getJClass().getName();                                                    state.jClass.setSuperClass(className);                                //-- copy members from super class                classInfo.addFieldInfo(cInfo.getAttributeFields());                classInfo.addFieldInfo(cInfo.getElementFields());            }            else {                //-- will this ever be null, if we have a valid Schema?                //-- ignore for now...but add comment in case we                //-- ever see it.                System.out.print("ClassInfo#init: ");                System.out.print("A referenced archetype is null: ");                System.out.println(sourceName);            }        }                //---------------------/        //- handle attributes -/        //---------------------/        //-- loop throug each attribute        Enumeration enum = archetype.getAttributeDecls();        while (enum.hasMoreElements()) {            AttributeDecl attr = (AttributeDecl)enum.nextElement();            FieldInfo fieldInfo = MemberFactory.createFieldInfo(attr);            handleField(fieldInfo, state);        }