public static void listChildren( Element current, int depth, Vector boneRecs )
    {
        List children = current.getChildren();
        Iterator iterator = children.iterator();
        BoneRec bone = new BoneRec();
        
        // get next file name
        if ( current.getName().equals( "uniqueid" ) )
        {
            bone.setUID(current.getValue().trim());
            String filename ="bonexml/" + current.getValue().trim() + ".xml";
            // add iterator to get elevation
            // switch on elevation to determine color
            // add color/name to points list ahead of xmlRead call
            //System.out.println(boneRecs.get(boneRecs.size()-1));
            try
            {  
                bone.setPoints(xmlRead(filename));     
                boneRecs.add(bone);
            }
            catch ( Exception e )
            {
                System.out.println( e );
            }

            
        }
        else if ( current.getName().equals("year"))
        {
            bone = (BoneRec) boneRecs.elementAt(boneRecs.size()-1);
            bone.setYear(Integer.parseInt(current.getValue().trim()));
            boneRecs.setElementAt(bone, boneRecs.size()-1);            
        }
        else if ( current.getName().equals("elevation"))
        {
            bone = (BoneRec ) boneRecs.elementAt(boneRecs.size()-1);
            bone.setElev(Double.parseDouble(current.getValue().trim()));
            boneRecs.setElementAt(bone, boneRecs.size()-1); 
        }
        else if ( current.getName().equals("taxon"))
        {
            bone = (BoneRec) boneRecs.elementAt(boneRecs.size()-1);
            bone.setTaxon(current.getValue().trim());
            boneRecs.setElementAt(bone, boneRecs.size()-1);
        }
        else if ( current.getName().equals("subelement"))
        {
            bone = (BoneRec) boneRecs.elementAt(boneRecs.size()-1);
            bone.setSubElement(current.getValue().trim());
            boneRecs.setElementAt(bone, boneRecs.size()-1);
        }
        else if ( current.getName().equals("completeness"))
        {
            bone = (BoneRec) boneRecs.elementAt(boneRecs.size()-1);
            bone.setCompleteness(current.getValue().trim());
            boneRecs.setElementAt(bone, boneRecs.size()-1);
        }
        else if ( current.getName().equals("gender"))
        {
            bone = (BoneRec) boneRecs.elementAt(boneRecs.size()-1);
            bone.setGender(current.getValue().trim());
            boneRecs.setElementAt(bone, boneRecs.size()-1);
        }
        
        //bone.print();
        // recursively process each child node
        while ( iterator.hasNext() )
        {
            Element child = ( Element ) iterator.next();
            listChildren( child, depth + 1, boneRecs );
        }
    }