private Element CreateColumnHeaders()
    {
        Element colHeaders  = doc.createElement("headers");
        Element header      = doc.createElement("col-header");
        header.appendChild(doc.createTextNode(dataGrid.getRowDescriptor()));
        
        colHeaders.appendChild(header);
        int cndx = 0;
        
        for (String colName : dataGrid.getColLabels())
        {
            Element item = doc.createElement("header");
            
            String text = SpaceHump(colName);
    
            List<String> tmplabels = HumpDivided(colName);
              
            Element gcolor = doc.createElement("color");
            gcolor.setAttribute("hue", "black");
            
            // Color the col labels appropiately 
            if (_colColors.containsKey(cndx))
            {
                gcolor.setAttribute("hue", _colColors.get(cndx));
            }
            
            // line break the words
            for (String s: tmplabels)
            {
               gcolor.appendChild(doc.createTextNode(s)); 
               gcolor.appendChild(doc.createElement("br"));
            }            
            
            item.appendChild(gcolor);
                       
            colHeaders.appendChild(item);
            
            cndx++;
        }
        
        
        // Apppend the row summary if present
        if (dataGrid.getRowSummarys().size() > 0)
        {
            Element item = doc.createElement("header");                        
            item.appendChild(doc.createTextNode(dataGrid.getRowSummaryLabel()));
            colHeaders.appendChild(item);            
        }
                
        return colHeaders;
    }