String table(String title, String cl, Class comp, List<Field> l) {
            if (l.size() == 0) {
                return "";
            }

            Collections.sort(l, new Comparator<Field>() {

                @Override
                public int compare(Field o1, Field o2) {
                    return o1.getName().compareToIgnoreCase(o2.getName());
                }
            });

            StringBuffer db = new StringBuffer();
            db.append("<section>");
            db.append("<title>" + title + "</title>");
            db.append("<variablelist>");
            for (Field field : l) {
                db.append("<varlistentry><term><emphasis role='bold'>" + field.getName() + "</emphasis>");
                Unit unit = field.getAnnotation(Unit.class);
                if (unit != null) {
                    db.append("<code> [");
                    db.append(unit.value());
                    db.append("]</code>");
                }

                db.append("<code> - " + field.getType().getSimpleName() + "</code>");

                Range range = field.getAnnotation(Range.class);
                if (range != null) {
                    db.append("  (");
                    db.append(range.min() == Double.MIN_VALUE ? "" : range.min());
                    db.append(" ... ");
                    db.append(range.max() == Double.MAX_VALUE ? "" : range.max());
                    db.append(")");
                }

                db.append("<indexterm><primary>" + field.getName() + " (" + cl + ")</primary><secondary>"
                        + field.getDeclaringClass().getSimpleName() + "</secondary></indexterm>");
                db.append("</term>");
                db.append("<listitem><para>");
                Description descr = field.getAnnotation(Description.class);
                if (descr != null) {
                    String d = locDesc(descr, loc);
                    db.append("<![CDATA[" + d + "]]>");
                }
                db.append("</para></listitem>");
                db.append("</varlistentry>");
            }

            db.append("</variablelist>");
            db.append("</section>");
            return db.toString();
        }