docs: public void processElement(ElementDefinition ed) throws Exception {
      CSVLine line = new CSVLine();
      lines.add(line);
      line.addString(ed.getPath());
      line.addString(ed.getSliceName());
      line.addString(itemList(ed.getAlias()));
      line.addString(ed.getLabel());
      line.addValue(ed.getMin());
      line.addValue(ed.getMax());
      line.addString(ed.getMustSupport() ? "Y" : "");
      line.addString(ed.getIsModifier() ? "Y" : "");
      line.addString(ed.getIsSummary() ? "Y" : "");
      line.addString(itemList(ed.getType()));
      line.addString(ed.getShort());
      line.addString(ed.getDefinition());
      line.addString(ed.getComment());
      line.addString(ed.getRequirements());
      line.addString(ed.getDefaultValue()!=null ? renderType(ed.getDefaultValue()) : "");
      line.addString(ed.getMeaningWhenMissing());
      line.addString(ed.hasFixed() ? renderType(ed.getFixed()) : "");
      line.addString(ed.hasPattern() ? renderType(ed.getPattern()) : "");
      line.addString(ed.hasExample() ? renderType(ed.getExample().get(0).getValue()) : ""); // todo...?
      line.addString(ed.hasMinValue() ? renderType(ed.getMinValue()) : "");
      line.addString(ed.hasMaxValue() ? renderType(ed.getMaxValue()) : "");
      line.addValue((ed.hasMaxLength() ? Integer.toString(ed.getMaxLength()) : ""));
      if (ed.hasBinding()) {
        line.addString(ed.getBinding().getStrength()!=null ? ed.getBinding().getStrength().toCode() : "");
        line.addString(ed.getBinding().getDescription());
        if (ed.getBinding().getValueSet()==null)
          line.addString("");
        else
          line.addString(ed.getBinding().getValueSet());
      } else {
        line.addValue("");
        line.addValue("");
        line.addValue("");
      }
      line.addString(itemList(ed.getCode()));
      if (ed.hasSlicing()) {
        line.addString(itemList(ed.getSlicing().getDiscriminator()));
        line.addString(ed.getSlicing().getDescription());
        line.addBoolean(ed.getSlicing().getOrdered());
        line.addString(ed.getSlicing().getRules()!=null ? ed.getSlicing().getRules().toCode() : "");
      } else {
        line.addValue("");
        line.addValue("");
        line.addValue("");      
      }
      if (ed.getBase()!=null) {
        line.addString(ed.getBase().getPath());
        line.addValue(ed.getBase().getMin());
        line.addValue(ed.getBase().getMax());
      } else {
        line.addValue("");
        line.addValue("");
        line.addValue("");      
      }
      line.addString(itemList(ed.getCondition()));
      line.addString(itemList(ed.getConstraint()));
      for (StructureDefinitionMappingComponent mapKey : def.getMapping()) {
        for (ElementDefinitionMappingComponent map : ed.getMapping()) {
          if (map.getIdentity().equals(mapKey.getIdentity()))
          	line.addString(map.getMap());
        }
      }
    }