public boolean children() throws IOException {
        if (isEmpty || isText) return false;
        checkNotParsed();
        
        int type;
        if (depth == 0) {
            type = prolog();
        } else {
            type = reader.getType();
        }
        
        switch (type) {
            case XmlReader.START_TAG: readStartTag();return true;
            case XmlReader.TEXT: 
                    if (mixed) {
                        //consider text as a child element
                        isText = true;
                        wasParsed = false;
                        isEmpty = false;
                        attrCount = 0;
                        return true;
                    } else return false;
            case XmlReader.END_TAG: wasParsed = true; // no break call 
            default: return false;
        }
    }