code: public static String formatTypeName(final String elementName,
              final CobolDataItem cobolDataItem,
              final List < String > nonUniqueCobolNames,
              final Cob2XsdConfig config, final XsdDataItem parent,
              final int order) {
  
          StringBuilder sb = new StringBuilder();
          sb.append(Character.toUpperCase(elementName.charAt(0)));
          sb.append(elementName.substring(1));
          if (nonUniqueCobolNames.contains(cobolDataItem.getCobolName())) {
              if (config.nameConflictPrependParentName()) {
                  if (parent != null) {
                      sb.insert(0, parent.getXsdTypeName());
                  }
              } else {
                  sb.append(cobolDataItem.getSrceLine());
              }
          }
  
          return sb.toString();
      }
docs: Turn a COBOL name to a unique XSD type name.
  <p/>
  Complex type names customarily start with an uppercase character.
  <p/>
  The proposed name might be conflicting with another so we disambiguate
  xsd type names with one of 2 options:
  <ul>
  <li>Appending the COBOL source line number (compatible with
  legstar-schemagen)</li>
  <li>Appending the parent XSD type name</li>
  </ul>
  
  @param cobolDataItem the COBOL data item
  @param elementName the element name built from the COBOL name
  @param nonUniqueCobolNames a list of non unique COBOL names
  @param config the translator options
  @param parent used to resolve potential name conflict
  @param order order within parent to disambiguate siblings
  @return a nice XML type name